[analyzer] Be more plugin-friendly by moving static locals into .cpp files.
authorArtem Dergachev <artem.dergachev@gmail.com>
Sat, 20 Oct 2018 00:29:24 +0000 (00:29 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Sat, 20 Oct 2018 00:29:24 +0000 (00:29 +0000)
commit25dac79edf0c7b8c8481ce358c074352c7289006
tree13541c314e8bce2393463f2ab2db2e26ad7503a3
parent8d6ff4c0af843e1a61b76d89812aed91e358de34
[analyzer] Be more plugin-friendly by moving static locals into .cpp files.

The GDMIndex functions return a pointer that's used as a key for looking up
data, but addresses of local statics defined in header files aren't the same
across shared library boundaries and the result is that analyzer plugins
can't access this data.

Event types are uniqued by using the addresses of a local static defined
in a header files, but it isn't the same across shared library boundaries
and plugins can't currently handle ImplicitNullDerefEvents.

Patches by Joe Ranieri!

Differential Revision: https://reviews.llvm.org/D52905
Differential Revision: https://reviews.llvm.org/D52906

llvm-svn: 344823
12 files changed:
clang/include/clang/StaticAnalyzer/Core/Checker.h
clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
clang/lib/StaticAnalyzer/Core/CMakeLists.txt
clang/lib/StaticAnalyzer/Core/Checker.cpp
clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp
clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
clang/lib/StaticAnalyzer/Core/TaintManager.cpp [new file with mode: 0644]