[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