[cfe-commits] r59312 - /cfe/trunk/lib/Analysis/UninitializedValues.cpp

Ted Kremenek kremenek at apple.com
Fri Nov 14 10:21:38 PST 2008


Author: kremenek
Date: Fri Nov 14 12:21:25 2008
New Revision: 59312

URL: http://llvm.org/viewvc/llvm-project?rev=59312&view=rev
Log:
Flow-sensitive uninitialized values analysis: properly handle the 'element' expression of ObjCForCollectionStmt (can be anything).

Modified:
    cfe/trunk/lib/Analysis/UninitializedValues.cpp

Modified: cfe/trunk/lib/Analysis/UninitializedValues.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/UninitializedValues.cpp?rev=59312&r1=59311&r2=59312&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/UninitializedValues.cpp (original)
+++ cfe/trunk/lib/Analysis/UninitializedValues.cpp Fri Nov 14 12:21:25 2008
@@ -194,9 +194,16 @@
 
   if (DeclStmt* DS = dyn_cast<DeclStmt>(Element))
     VD = cast<VarDecl>(DS->getSolitaryDecl());
-  else
-    VD = cast<VarDecl>(cast<DeclRefExpr>(Element)->getDecl());
+  else {
+    Expr* ElemExpr = cast<Expr>(Element)->IgnoreParens();
 
+    // Initialize the value of the reference variable.
+    if (DeclRefExpr* DR = dyn_cast<DeclRefExpr>(ElemExpr))
+      VD = cast<VarDecl>(DR->getDecl());
+    else
+      return Visit(ElemExpr);
+  }
+      
   V(VD,AD) = Initialized;
   return Initialized;
 }





More information about the cfe-commits mailing list