diff options
author | Jordan Rose <jordan_rose@apple.com> | 2012-08-13 22:11:34 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2012-08-13 22:11:34 +0000 |
commit | 07a7ed80cb423e0d58f9f5217b8342b14c0b3e00 (patch) | |
tree | f7e5325e2bb810544de4d78edc6e8e66c72e9f20 /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | 745954379548fcd1dd288bf1e2d2bc9dc6da8382 (diff) | |
download | bcm5719-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 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
0 files changed, 0 insertions, 0 deletions