[analyzer] Fix crash in RetainCountChecker::checkEndFunction
authorAlexander Shaposhnikov <shal1t712@gmail.com>
Fri, 23 Sep 2016 20:49:01 +0000 (20:49 +0000)
committerAlexander Shaposhnikov <shal1t712@gmail.com>
Fri, 23 Sep 2016 20:49:01 +0000 (20:49 +0000)
commita1fead293fa6fd3296318290248cea04d860ad47
tree2c1e24267ae9cf4d11a3a3f0a20ceb172ee517bc
parent2d1d944f7e79e113e5c3b93980ff3de51337ba91
[analyzer] Fix crash in RetainCountChecker::checkEndFunction

The class BodyFarm creates bodies for
OSAtomicCompareAndSwap*, objc_atomicCompareAndSwap*, dispatch_sync*, dispatch_once*
and for them the flag isBodyAutosynthesized is set to true.

This diff
1. makes AnalysisConsumer::HandleCode skip the autosynthesized code
2. replaces assert(LCtx->getParent()) in RetainCountChecker::checkEndFunction
by assert(!LCtx->inTopFrame()) (minor cleanup)

Test plan: make -j8 check-clang-analysis

Differential revision: https://reviews.llvm.org/D24792

llvm-svn: 282293
clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
clang/test/Analysis/NSString.m