[analyzer] Support for naive cross translation unit analysis
authorGabor Horvath <xazax.hun@gmail.com>
Wed, 28 Feb 2018 13:23:10 +0000 (13:23 +0000)
committerGabor Horvath <xazax.hun@gmail.com>
Wed, 28 Feb 2018 13:23:10 +0000 (13:23 +0000)
commiteb0584bee413c5b0f3275e47d6153433c8a3130f
treee9f412f0f0fe6c8a291bd02ecadaec4ccbd79b52
parent4529aac2de3ffccbf015503681bb5c9712e295b7
[analyzer] Support for naive cross translation unit analysis

The aim of this patch is to be minimal to enable incremental development of
the feature on the top of the tree. This patch should be an NFC when the
feature is turned off. It is turned off by default and still considered as
experimental.

Technical details are available in the EuroLLVM Talk:
http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html#7

Note that the initial prototype was done by A. Sidorin et al.: http://lists.llvm.org/pipermail/cfe-dev/2015-October/045730.html

Contributions to the measurements and the new version of the code: Peter Szecsi, Zoltan Gera, Daniel Krupp, Kareem Khazem.

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

llvm-svn: 326323
23 files changed:
clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
clang/lib/StaticAnalyzer/Core/CMakeLists.txt
clang/lib/StaticAnalyzer/Core/CallEvent.cpp
clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt
clang/test/Analysis/Inputs/ctu-chain.cpp [new file with mode: 0644]
clang/test/Analysis/Inputs/ctu-other.cpp [new file with mode: 0644]
clang/test/Analysis/Inputs/externalFnMap.txt [new file with mode: 0644]
clang/test/Analysis/analyzer-config.cpp
clang/test/Analysis/ctu-main.cpp [new file with mode: 0644]
clang/tools/scan-build-py/README.md
clang/tools/scan-build-py/libscanbuild/__init__.py
clang/tools/scan-build-py/libscanbuild/analyze.py
clang/tools/scan-build-py/libscanbuild/arguments.py
clang/tools/scan-build-py/libscanbuild/clang.py
clang/tools/scan-build-py/libscanbuild/report.py
clang/tools/scan-build-py/tests/unit/test_analyze.py
clang/tools/scan-build-py/tests/unit/test_clang.py