Author: kremenek
Date: Sat Nov  1 19:35:25 2008
New Revision: 58553

URL: http://llvm.org/viewvc/llvm-project?rev=58553&view=rev
Log:
Enhance return-of-stack-address checker to recognize regions created by 
alloca().

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

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

==============================================================================
--- cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.cpp (original)
+++ cfe/trunk/lib/Analysis/GRExprEngineInternalChecks.cpp Sat Nov  1 19:35:25 
2008
@@ -216,6 +216,15 @@
         
         R = CL->getSourceRange();
       }
+      else if (const AllocaRegion* AR = dyn_cast<AllocaRegion>(V.getRegion())) 
{
+        const Expr* ARE = AR->getExpr();
+        SourceLocation L = ARE->getLocStart();
+        R = ARE->getSourceRange();
+        
+        os << "Address of stack memory allocated by call to alloca() on line "
+           << BR.getSourceManager().getLogicalLineNumber(L)
+           << " returned.";
+      }      
       else {        
         os << "Address of stack memory associated with local variable '"
            << V.getRegion()->getString() << "' returned.";


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to