]> granicus.if.org Git - clang/commit
[analyzer] Don't accidentally strip off base object regions for lazy bindings.
authorJordan Rose <jordan_rose@apple.com>
Tue, 19 Feb 2013 20:28:33 +0000 (20:28 +0000)
committerJordan Rose <jordan_rose@apple.com>
Tue, 19 Feb 2013 20:28:33 +0000 (20:28 +0000)
commit65f991ccbec43b4a860f70594c92528ee8fb7c6f
treea32580539206831d3ea8f7b743b2f22ccfe15184
parent03628b86a9c50e066412fb0e49908686ff117378
[analyzer] Don't accidentally strip off base object regions for lazy bindings.

If a base object is at a 0 offset, RegionStoreManager may find a lazy
binding for the entire object, then try to attach a FieldRegion or
grandparent CXXBaseObjectRegion on top of that (skipping the intermediate
region). We now preserve as many layers of base object regions necessary
to make the types match.

<rdar://problem/13239840>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175556 91177308-0d34-0410-b5e6-96231b3b80d8
lib/StaticAnalyzer/Core/RegionStore.cpp
test/Analysis/derived-to-base.cpp