diff options
author | Jordan Rose <jordan_rose@apple.com> | 2013-02-01 19:49:59 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2013-02-01 19:49:59 +0000 |
commit | 5500fc193af4b786bbbbee6ece743f523448e90b (patch) | |
tree | b35fcfc8110a3f7cc2c6347c3b3fe26ff7d5302c /include/clang/StaticAnalyzer/Core/PathSensitive | |
parent | 978aeac1a90020b2a0ae6c7eb7fe65aa8226f74a (diff) |
Re-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind."
With the optimization in the previous commit, this should be safe again.
Originally applied in r173951, then reverted in r174069.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174212 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/StaticAnalyzer/Core/PathSensitive')
-rw-r--r-- | include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h index ba63620afb..598a915cd8 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h @@ -44,6 +44,7 @@ namespace ento { class AnalysisManager; class CallEvent; class SimpleCall; +class CXXConstructorCall; class ExprEngine : public SubEngine { public: @@ -546,6 +547,10 @@ private: ExplodedNode *Pred); bool replayWithoutInlining(ExplodedNode *P, const LocationContext *CalleeLC); + + /// Models a trivial copy or move constructor call with a simple bind. + void performTrivialCopy(NodeBuilder &Bldr, ExplodedNode *Pred, + const CXXConstructorCall &Call); }; /// Traits for storing the call processing policy inside GDM. |