[analyzer][CrossTU] Extend CTU to VarDecls with initializer
authorRafael Stahl <r.stahl@tum.de>
Tue, 23 Apr 2019 11:04:41 +0000 (11:04 +0000)
committerRafael Stahl <r.stahl@tum.de>
Tue, 23 Apr 2019 11:04:41 +0000 (11:04 +0000)
commit850361f6c1db6bd8a85b65a8c56e0e097eaa0635
treed307c637054fa8ba3034e986e9bcd5d6f346e78b
parent330bc8af131c5b42efe120dbf70f47881d02d3a3
[analyzer][CrossTU] Extend CTU to VarDecls with initializer

Summary:
The existing CTU mechanism imports `FunctionDecl`s where the definition is available in another TU. This patch extends that to VarDecls, to bind more constants.

- Add VarDecl importing functionality to CrossTranslationUnitContext
- Import Decls while traversing them in AnalysisConsumer
- Add VarDecls to CTU external mappings generator
- Name changes from "external function map" to "external definition map"

Reviewers: NoQ, dcoughlin, xazax.hun, george.karpenkov, martong

Reviewed By: xazax.hun

Subscribers: Charusso, baloghadamsoftware, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, george.karpenkov, mgorny, whisperity, szepet, rnkovacs, a.sidorin, cfe-commits

Tags: #clang

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

llvm-svn: 358968
clang/include/clang/CrossTU/CrossTranslationUnit.h
clang/lib/CrossTU/CrossTranslationUnit.cpp
clang/lib/StaticAnalyzer/Core/RegionStore.cpp
clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
clang/test/Analysis/Inputs/ctu-other.cpp
clang/test/Analysis/Inputs/ctu-other.cpp.externalDefMap.txt
clang/test/Analysis/ctu-main.cpp
clang/test/Analysis/func-mapping-test.cpp
clang/test/Analysis/redecl.c [new file with mode: 0644]
clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp