aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Frontend/FrontendActions.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-07-02 19:27:43 +0000
committerJordan Rose <jordan_rose@apple.com>2012-07-02 19:27:43 +0000
commit4531b7d64e1ed03a925ffdcfb4aa065f2721afb8 (patch)
tree56cdf9109a976c9fc4e66e4f901b3b9f8d770908 /lib/StaticAnalyzer/Frontend/FrontendActions.cpp
parent740d490593e0de8732a697c9f77b90ddd463863b (diff)
[analyzer] Convert RetainCountChecker to use CallEvent as much as possible.
This ended allowing quite a bit of cleanup, and some minor changes. - CallEvent makes it easy to use hasNonZeroCallbackArg more aggressively, which we check in order to avoid false positives with callbacks that might release the object. - In order to support this for functions which consume their arguments, there are two new ArgEffects: DecRefAndStopTracking and DecRefMsgAndStopTracking. These act just like StopTracking, except that if the object only had a return count of +1 it's now considered released instead (so we still get use-after-free messages). - On the plus side, we no longer have to special-case +[NSObject performSelector:withObject:afterDelay:] and friends. - The use of IdentifierInfos in the method summary cache is now hidden; only the ObjCInterfaceDecl gets passed around most of the time. - Since we cache all "simple" summaries and check every function call, there is no real benefit to having NULL stand in for default summaries anymore. - Whitespace, unused methods, etc. Even more simplification to come when we get check::postCall and can unify all these other post* checks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159555 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Frontend/FrontendActions.cpp')
0 files changed, 0 insertions, 0 deletions