]> granicus.if.org Git - clang/commit
Static analyzer:
authorTed Kremenek <kremenek@apple.com>
Sat, 14 Feb 2009 01:43:44 +0000 (01:43 +0000)
committerTed Kremenek <kremenek@apple.com>
Sat, 14 Feb 2009 01:43:44 +0000 (01:43 +0000)
commit41573ebf8fb971f40fa8a3e20648362c359b4916
tree819d4b68e8463bfab03d015c4c894a72d4fc4d8f
parent13f5f6e4796607e7bebfed1c09d9e5d4248fce9e
Static analyzer:
- Added a new 'node builder' class called GRStmtNodeBuilderRef (name may
  change). This is essentially a smart reference to a GRStmtNodeBuilder object
  that keeps track of the current context (predecessor node, GRExprEngine
  object, etc.) The idea is to gradually simplify the interface between
  GRExprEngine and GRTransferFuncs using this new builder (i.e., passing 1
  argument instead of 5). It also handles some of the "auto-transition" for node
  creation, simplifying some of the logic in GRExprEngine itself.

- Used GRStmtBuilderRef to replace GRTransferFuncs::EvalStore with
  GRTransferFuncs::EvalBind. The new EvalBind method will be used at any
  arbitrary places where a binding between a location and value takes place.
  Moreover, GRTransferFuncs no longer has the responsibility to request
  StoreManager to do the binding; this is now in GRExprEngine::EvalBind. All
  GRTransferFuncs::EvalBind does is checker-specific logic (which can be a
  no-op).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64525 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Analysis/PathSensitive/GRExprEngine.h
include/clang/Analysis/PathSensitive/GRExprEngineBuilders.h [new file with mode: 0644]
include/clang/Analysis/PathSensitive/GRTransferFuncs.h
lib/Analysis/CFRefCount.cpp
lib/Analysis/GRExprEngine.cpp
lib/Analysis/GRTransferFuncs.cpp