]> granicus.if.org Git - clang/commit
[analyzer] Only adjust the type of 'this' when we devirtualize a method call.
authorJordan Rose <jordan_rose@apple.com>
Wed, 15 Aug 2012 17:33:34 +0000 (17:33 +0000)
committerJordan Rose <jordan_rose@apple.com>
Wed, 15 Aug 2012 17:33:34 +0000 (17:33 +0000)
commit9f6441ad92c30028032eb3df6f4a7f2ebe393a68
treec93957af2c6f1a52192b8cede79f5dd4546ee9e3
parent7bd092b054444e9800e8de1d8d71c408dbdc8ead
[analyzer] Only adjust the type of 'this' when we devirtualize a method call.

With reinterpret_cast, we can get completely unrelated types in a region
hierarchy together; this was resulting in CXXBaseObjectRegions being layered
directly on an (untyped) SymbolicRegion, whose symbol was from a completely
different type hierarchy. This was what was causing the internal buildbot to
fail.

Reverts r161911, which merely masked the problem.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161960 91177308-0d34-0410-b5e6-96231b3b80d8
lib/StaticAnalyzer/Core/CallEvent.cpp
lib/StaticAnalyzer/Core/MemRegion.cpp
test/Analysis/reinterpret-cast.cpp [new file with mode: 0644]