[cfe-commits] r48113 - in /cfe/trunk: Analysis/GRExprEngine.cpp include/clang/Analysis/PathSensitive/GRExprEngine.h

Ted Kremenek kremenek at apple.com
Sun Mar 9 11:05:48 PDT 2008


Author: kremenek
Date: Sun Mar  9 13:05:48 2008
New Revision: 48113

URL: http://llvm.org/viewvc/llvm-project?rev=48113&view=rev
Log:
Refactored guards for "GRExprEngine::RemoveDeadBindings" directly into the
method. This paves the way for other alterations to RemoveDeadBindings that are
transparent to its callers.

Modified:
    cfe/trunk/Analysis/GRExprEngine.cpp
    cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h

Modified: cfe/trunk/Analysis/GRExprEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Analysis/GRExprEngine.cpp?rev=48113&r1=48112&r2=48113&view=diff

==============================================================================
--- cfe/trunk/Analysis/GRExprEngine.cpp (original)
+++ cfe/trunk/Analysis/GRExprEngine.cpp Sun Mar  9 13:05:48 2008
@@ -39,6 +39,17 @@
 using llvm::cast;
 using llvm::APSInt;
 
+ValueState* GRExprEngine::RemoveDeadBindings(ValueState* St) {
+  
+  if (StateCleaned || !CurrentStmt)
+    return St;
+  
+  StateCleaned = true;
+  
+  return StateMgr.RemoveDeadBindings(St, CurrentStmt, Liveness);
+}
+
+
 ValueState* GRExprEngine::getInitialState() {
 
   // The LiveVariables information already has a compilation of all VarDecls
@@ -65,10 +76,7 @@
       
 ValueState* GRExprEngine::SetRVal(ValueState* St, Expr* Ex, RVal V) {
 
-  if (!StateCleaned) {
-    St = RemoveDeadBindings(CurrentStmt, St);
-    StateCleaned = true;
-  }
+  St = RemoveDeadBindings(St);
 
   bool isBlkExpr = false;
     
@@ -83,22 +91,12 @@
 }
 
 ValueState* GRExprEngine::SetRVal(ValueState* St, LVal LV, RVal RV) {
-  
-  if (!StateCleaned) {
-    St = RemoveDeadBindings(CurrentStmt, St);
-    StateCleaned = true;
-  }
-  
+  St = RemoveDeadBindings(St);  
   return StateMgr.SetRVal(St, LV, RV);
 }
 
 ValueState* GRExprEngine::SetBlkExprRVal(ValueState* St, Expr* Ex, RVal V) {
-  
-  if (CurrentStmt && !StateCleaned) {
-    St = RemoveDeadBindings(CurrentStmt, St);
-    StateCleaned = true;
-  }
-  
+  St = RemoveDeadBindings(St);  
   return StateMgr.SetRVal(St, Ex, V, true, false);
 }
 
@@ -432,7 +430,7 @@
   if (Dst.size() == 1 && *Dst.begin() == StmtEntryNode) {
     ValueState* St =
       StateCleaned ? StmtEntryNode->getState() : 
-                     RemoveDeadBindings(S, StmtEntryNode->getState());
+                     RemoveDeadBindings(StmtEntryNode->getState());
     
     builder.generateNode(S, St, StmtEntryNode);
   }

Modified: cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h?rev=48113&r1=48112&r2=48113&view=diff

==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h Sun Mar  9 13:05:48 2008
@@ -263,11 +263,9 @@
   
   /// RemoveDeadBindings - Return a new state that is the same as 'St' except
   ///  that all subexpression mappings are removed and that any
-  ///  block-level expressions that are not live at 'S' also have their
-  ///  mappings removed.
-  inline ValueState* RemoveDeadBindings(Stmt* S, ValueState* St) {
-    return StateMgr.RemoveDeadBindings(St, S, Liveness);
-  }
+  ///  block-level expressions that are not live at 'CurrentStmt' also have 
+  ///  their mappings removed.
+  ValueState* RemoveDeadBindings(ValueState* St);
   
   ValueState* SetRVal(ValueState* St, Expr* Ex, RVal V);
   





More information about the cfe-commits mailing list