[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