[analyzer] Track null object lvalues back through C++ method calls.
authorJordan Rose <jordan_rose@apple.com>
Sat, 26 Jan 2013 01:28:23 +0000 (01:28 +0000)
committerJordan Rose <jordan_rose@apple.com>
Sat, 26 Jan 2013 01:28:23 +0000 (01:28 +0000)
commitaea020f04ec86ba9165ad701ad58cc467a0906fe
tree8cb1df5caa1e0927e7c8db1552a4105eab6b8f4b
parentc362edad85bfa1f143cc94ab58e16a0543b6c06a
[analyzer] Track null object lvalues back through C++ method calls.

The expression 'a->b.c()' contains a call to the 'c' method of 'a->b'.
We emit an error if 'a' is NULL, but previously didn't actually track
the null value back through the 'a->b' expression, which caused us to
miss important false-positive-suppression cases, including
<rdar://problem/12676053>.

llvm-svn: 173547
clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
clang/test/Analysis/inlining/false-positive-suppression.cpp [new file with mode: 0644]