]> granicus.if.org Git - clang/commitdiff
Added version of CheckDeadStores that accepts a client-provided LiveVariables object.
authorTed Kremenek <kremenek@apple.com>
Wed, 2 Jul 2008 18:39:20 +0000 (18:39 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 2 Jul 2008 18:39:20 +0000 (18:39 +0000)
Modified the DeadStores logic in AnalysisConsumer.cpp to use the LiveVariables object created by the AnalysisManager.

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

Driver/AnalysisConsumer.cpp
include/clang/Analysis/LocalCheckers.h
lib/Analysis/DeadStores.cpp

index f8d9a250baf80161c34a93f7d84935d683c71997..1e33ae168aebedc1ca2f956e8db6f10d4dffcb02 100644 (file)
@@ -264,7 +264,8 @@ void AnalysisConsumer::HandleCode(Decl* D, Stmt* Body, Actions actions) {
 //===----------------------------------------------------------------------===//
 
 static void ActionDeadStores(AnalysisManager& mgr) {
-  CheckDeadStores(*mgr.getCFG(), mgr.getContext(), *mgr.getParentMap(),
+  CheckDeadStores(*mgr.getCFG(), mgr.getContext(),
+                  *mgr.getLiveVariables(), *mgr.getParentMap(),
                   mgr.getDiagnostic());
 }
 
index 2369196b0b26062353176723f39dc4e43f1cee84..20283938791c26cfcf2b944a3dee32e39550e57e 100644 (file)
@@ -26,10 +26,14 @@ class GRTransferFuncs;
 class BugType;
 class LangOptions;
 class ParentMap;
+class LiveVariables;
   
 void CheckDeadStores(CFG& cfg, ASTContext &Ctx, ParentMap& Parents,
                      Diagnostic &Diags); 
   
+  void CheckDeadStores(CFG& cfg, ASTContext &Ctx, LiveVariables& L,
+                       ParentMap& Parents, Diagnostic &Diags); 
+  
 void CheckUninitializedValues(CFG& cfg, ASTContext& Ctx, Diagnostic& Diags,
                               bool FullUninitTaint=false);
   
index 208e66f3e969d5f50c8ad5df79804e587bb6c2f0..265679ff7e60f611cc1f44955b02cd3556fcd4d4 100644 (file)
@@ -151,6 +151,12 @@ void clang::CheckDeadStores(CFG& cfg, ASTContext &Ctx,
                             ParentMap& Parents, Diagnostic &Diags) {  
   LiveVariables L(cfg);
   L.runOnCFG(cfg);
+  CheckDeadStores(cfg, Ctx, L, Parents, Diags);
+}
+
+void clang::CheckDeadStores(CFG& cfg, ASTContext &Ctx, LiveVariables& L,
+                            ParentMap& Parents, Diagnostic &Diags) {  
+
   DeadStoreObs A(Ctx, Diags, Diags.getClient(), Parents);
   L.runOnAllBlocks(cfg, &A);
 }