[analyzer] PR8962 again. Ban ParenExprs (and friends) from block-level expressions (by calling IgnoreParens before adding expressions to blocks). Undo 132769 (LiveVariables' local IgnoreParens), since it's no longer necessary.

Also, have Environment stop looking through NoOp casts; it didn't match the behavior of LiveVariables. And once that's gone, the whole cast block of that switch is unnecessary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132840 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/LiveVariables.cpp b/lib/Analysis/LiveVariables.cpp
index 0fe87e8..7b36f85 100644
--- a/lib/Analysis/LiveVariables.cpp
+++ b/lib/Analysis/LiveVariables.cpp
@@ -142,12 +142,8 @@
     if (AD.Observer)
       AD.Observer->ObserveStmt(S, currentBlock, AD, LiveState);
 
-    if (getCFG().isBlkExpr(S)) {
-      if (Expr *E = dyn_cast<Expr>(S)) 
-        LiveState(E->IgnoreParens(), AD) = Dead;
-      else
-        LiveState(S, AD) = Dead;
-    }
+    if (getCFG().isBlkExpr(S))
+      LiveState(S, AD) = Dead;
 
     StmtVisitor<TransferFuncs,void>::Visit(S);
   }
@@ -161,10 +157,7 @@
   }
   else {
     // For block-level expressions, mark that they are live.
-    if (Expr *E = dyn_cast<Expr>(S)) 
-      LiveState(E->IgnoreParens(), AD) = Alive;
-    else
-      LiveState(S, AD) = Alive;
+    LiveState(S, AD) = Alive;
   }
 }
   
@@ -181,9 +174,6 @@
     return;
 
   assert (getCFG().isBlkExpr(E));
-
-  if (const Expr *Ex = dyn_cast<Expr>(E))
-    E = Ex->IgnoreParens();
   LiveState(E, AD) = Alive;
 }