[analyzer] Make ObjCDeallocChecker path sensitive.
authorDevin Coughlin <dcoughlin@apple.com>
Thu, 25 Feb 2016 18:55:24 +0000 (18:55 +0000)
committerDevin Coughlin <dcoughlin@apple.com>
Thu, 25 Feb 2016 18:55:24 +0000 (18:55 +0000)
commit88691c1fcb683f5521c3120b2f4679a69e9dbb83
tree960f86153fc80f012d5965efc50eb29a3a5b67b8
parent602ba70a0b841a34b2e302ed49654d6c1f9aab05
[analyzer] Make ObjCDeallocChecker path sensitive.

Convert the ObjCDeallocChecker to be path sensitive. The primary
motivation for this change is to prevent false positives when -dealloc calls
helper invalidation methods to release instance variables, but it additionally
improves precision when -dealloc contains control flow. It also reduces the need
for pattern matching. The check for missing -dealloc methods remains AST-based.

Part of rdar://problem/6927496

Differential Revision: http://reviews.llvm.org/D17511

llvm-svn: 261917
clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
clang/test/Analysis/DeallocMissingRelease.m
clang/test/Analysis/MissingDealloc.m
clang/test/Analysis/PR2978.m
clang/test/Analysis/properties.m