[cfe-commits] r49563 - in /cfe/trunk/include/clang/Analysis/PathSensitive: GRExprEngine.h GRTransferFuncs.h
Ted Kremenek
kremenek at apple.com
Fri Apr 11 15:08:00 PDT 2008
Author: kremenek
Date: Fri Apr 11 17:07:59 2008
New Revision: 49563
URL: http://llvm.org/viewvc/llvm-project?rev=49563&view=rev
Log:
Added "EvalEndPath" to GRTransferFuncs: the default implementation does not
change the state (and thus the GREndPathNodeBuilder automatically contructs a
node).
Modified:
cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h
cfe/trunk/include/clang/Analysis/PathSensitive/GRTransferFuncs.h
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=49563&r1=49562&r2=49563&view=diff
==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/GRExprEngine.h Fri Apr 11 17:07:59 2008
@@ -367,7 +367,9 @@
/// ProcessEndPath - Called by GRCoreEngine. Used to generate end-of-path
/// nodes when the control reaches the end of a function.
- void ProcessEndPath(EndPathNodeBuilder& builder) {}
+ void ProcessEndPath(EndPathNodeBuilder& builder) {
+ TF->EvalEndPath(*this, builder);
+ }
ValueStateManager& getStateManager() { return StateMgr; }
const ValueStateManager& getStateManger() const { return StateMgr; }
Modified: cfe/trunk/include/clang/Analysis/PathSensitive/GRTransferFuncs.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathSensitive/GRTransferFuncs.h?rev=49563&r1=49562&r2=49563&view=diff
==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/GRTransferFuncs.h (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/GRTransferFuncs.h Fri Apr 11 17:07:59 2008
@@ -65,6 +65,11 @@
GRStmtNodeBuilder<ValueState>& Builder,
CallExpr* CE, LVal L,
ExplodedNode<ValueState>* Pred) = 0;
+
+ // End-of-path.
+
+ virtual void EvalEndPath(GRExprEngine& Engine,
+ GREndPathNodeBuilder<ValueState>& Builder) {}
};
} // end clang namespace
More information about the cfe-commits
mailing list