aboutsummaryrefslogtreecommitdiff
path: root/include/clang/StaticAnalyzer/Core/PathSensitive
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-02-01 19:49:59 +0000
committerJordan Rose <jordan_rose@apple.com>2013-02-01 19:49:59 +0000
commit5500fc193af4b786bbbbee6ece743f523448e90b (patch)
treeb35fcfc8110a3f7cc2c6347c3b3fe26ff7d5302c /include/clang/StaticAnalyzer/Core/PathSensitive
parent978aeac1a90020b2a0ae6c7eb7fe65aa8226f74a (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.h5
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.