[analyzer] Do not believe lazy binding when symbolic region types do not match
authorAnna Zaks <ganna@apple.com>
Tue, 19 Mar 2013 22:38:09 +0000 (22:38 +0000)
committerAnna Zaks <ganna@apple.com>
Tue, 19 Mar 2013 22:38:09 +0000 (22:38 +0000)
commit3f4fad92fee80ad64f306ca5cd7f1e875c940d08
treed7a685cccea76d2bda4c8068ac88f04be5ae2d3a
parent4bb98d0917076f644557c1deb0c52f261bac7a43
[analyzer] Do not believe lazy binding when symbolic region types do not match

This fixes a crash when analyzing LLVM that was exposed by r177220 (modeling of
trivial copy/move assignment operators).

When we look up a lazy binding for “Builder”, we see the direct binding of Loc at offset 0.
Previously, we believed the binding, which led to a crash. Now, we do not believe it as
the types do not match.

llvm-svn: 177453
clang/lib/StaticAnalyzer/Core/RegionStore.cpp
clang/test/Analysis/region-store.cpp [new file with mode: 0644]
clang/test/Analysis/uninit-vals.m