]> granicus.if.org Git - clang/commit
[analyzer] A CXXBaseObjectRegion should correspond to a DIRECT base.
authorJordan Rose <jordan_rose@apple.com>
Thu, 9 Aug 2012 21:24:02 +0000 (21:24 +0000)
committerJordan Rose <jordan_rose@apple.com>
Thu, 9 Aug 2012 21:24:02 +0000 (21:24 +0000)
commit2c5f8d79ed128892fa548a3308a938a3a53fbb5e
treeee6cd4b4e61f60b876678cc09b0baf2f05b190f2
parent6940972c33891ff5d2189fbf232dcdeee0e9daf8
[analyzer] A CXXBaseObjectRegion should correspond to a DIRECT base.

An ASTContext's RecordLayoutInfo can only be used to look up offsets of
direct base classes, and we need the offset to make non-symbolic bindings
in RegionStore. This change makes sure that we have one layer of
CXXBaseObjectRegion for each base we are casting through.

This was causing crashes on an internal buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161621 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
lib/StaticAnalyzer/Core/ExprEngineC.cpp
lib/StaticAnalyzer/Core/Store.cpp
test/Analysis/derived-to-base.cpp