[analyzer] Trust _Nonnull annotations for system framework
authorGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 23 Mar 2018 00:16:03 +0000 (00:16 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 23 Mar 2018 00:16:03 +0000 (00:16 +0000)
commit2301c5ab4dfda7e2f278971e183dc4b58990f18a
tree9976bc834318bc934bfa2975fd2794e8db3a298d
parent628920b460a48ca58b373035333b2899ee0114d3
[analyzer] Trust _Nonnull annotations for system framework

Changes the analyzer to believe that methods annotated with _Nonnull
from system frameworks indeed return non null objects.
Local methods with such annotation are still distrusted.
rdar://24291919

Differential Revision: https://reviews.llvm.org/D44341

llvm-svn: 328282
clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp [new file with mode: 0644]
clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp
clang/test/Analysis/Inputs/system-header-simulator-for-nullability.h
clang/test/Analysis/trustnonnullchecker_test.m [new file with mode: 0644]