summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-08-13 22:11:34 +0000
committerJordan Rose <jordan_rose@apple.com>2012-08-13 22:11:34 +0000
commit07a7ed80cb423e0d58f9f5217b8342b14c0b3e00 (patch)
treef7e5325e2bb810544de4d78edc6e8e66c72e9f20 /clang/lib/StaticAnalyzer/Core/CallEvent.cpp
parent745954379548fcd1dd288bf1e2d2bc9dc6da8382 (diff)
downloadbcm5719-llvm-07a7ed80cb423e0d58f9f5217b8342b14c0b3e00.tar.gz
bcm5719-llvm-07a7ed80cb423e0d58f9f5217b8342b14c0b3e00.zip
[analyzer] Don't strip CXXBaseObjectRegions when checking dynamic_casts.
...and /do/ strip CXXBaseObjectRegions when casting to a virtual base class. This allows us to enforce the invariant that a CXXBaseObjectRegion can always provide an offset for its base region if its base region has a known class type, by only allowing virtual bases and direct non-virtual bases to form CXXBaseObjectRegions. This does mean some slight problems for our modeling of dynamic_cast, which needs to be resolved by finding a path from the current region to the class we're trying to cast to. llvm-svn: 161797
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/CallEvent.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Core/CallEvent.cpp1
1 files changed, 0 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
index 619f9b200bf..6a5faa054ce 100644
--- a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
+++ b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
@@ -15,7 +15,6 @@
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/Analysis/ProgramPoint.h"
-#include "clang/AST/CXXInheritance.h"
#include "clang/AST/ParentMap.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringExtras.h"
OpenPOWER on IntegriCloud