]> granicus.if.org Git - clang/commitdiff
Minor bug fix in LiveVariables: don't "kill" decls referenced by a DeclStmt
authorTed Kremenek <kremenek@apple.com>
Mon, 25 Feb 2008 22:28:54 +0000 (22:28 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 25 Feb 2008 22:28:54 +0000 (22:28 +0000)
that aren't VarDecls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47572 91177308-0d34-0410-b5e6-96231b3b80d8

Analysis/LiveVariables.cpp

index 1201eb021d7497d0bc36d92aabf02006d3ab0ce2..52f7f4d19bf98abe8e8ceb34583944b24640e491 100644 (file)
@@ -156,13 +156,13 @@ void TransferFuncs::VisitAssign(BinaryOperator* B) {
 void TransferFuncs::VisitDeclStmt(DeclStmt* DS) {
   // Declarations effectively "kill" a variable since they cannot
   // possibly be live before they are declared.
-  for (ScopedDecl* D = DS->getDecl(); D != NULL; D = D->getNextDeclarator()) {
-    LiveState(D,AD) = Dead;
-
-    if (VarDecl* VD = dyn_cast<VarDecl>(D))
+  for (ScopedDecl* D = DS->getDecl(); D != NULL; D = D->getNextDeclarator())
+    if (VarDecl* VD = dyn_cast<VarDecl>(D)) {
+      LiveState(D,AD) = Dead;
+      
       if (Expr* Init = VD->getInit())
         Visit(Init);
-  }
+    }
 }
   
 } // end anonymous namespace