diff options
author | Artem Dergachev <artem.dergachev@gmail.com> | 2018-01-18 00:50:19 +0000 |
---|---|---|
committer | Artem Dergachev <artem.dergachev@gmail.com> | 2018-01-18 00:50:19 +0000 |
commit | 1c64e617f57297e53abc3d48bedb5a4e3375f644 (patch) | |
tree | ce44fbc7aea2a9738668de9906a1e29496f42c55 /clang/lib/StaticAnalyzer/Core/CoreEngine.cpp | |
parent | 0c79eab03d5bd5b74ee6d30d663bdf4a07764a04 (diff) | |
download | bcm5719-llvm-1c64e617f57297e53abc3d48bedb5a4e3375f644.tar.gz bcm5719-llvm-1c64e617f57297e53abc3d48bedb5a4e3375f644.zip |
[analyzer] operator new: Add a new ProgramPoint for check::NewAllocator.
Add PostAllocatorCall program point to represent the moment in the analysis
between the operator new() call and the constructor call. Pointer cast from
"void *" to the correct object pointer type has already happened by this point.
The new program point, unlike the previously used PostImplicitCall, contains a
reference to the new-expression, which allows adding path diagnostics over it.
Differential Revision: https://reviews.llvm.org/D41800
rdar://problem/12180598
llvm-svn: 322796
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/CoreEngine.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Core/CoreEngine.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp index e2e9ddf5048..39235745007 100644 --- a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp +++ b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp @@ -275,7 +275,8 @@ void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc, Loc.getAs<PostInitializer>() || Loc.getAs<PostImplicitCall>() || Loc.getAs<CallExitEnd>() || - Loc.getAs<LoopExit>()); + Loc.getAs<LoopExit>() || + Loc.getAs<PostAllocatorCall>()); HandlePostStmt(WU.getBlock(), WU.getIndex(), Pred); break; } |