[PATCH] D46421: [analyzer][CrossTU] Extend CTU to VarDecls with initializer
Rafael Stahl via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 29 02:13:36 PST 2019
r.stahl added a comment.
In D46421#1374807 <https://reviews.llvm.org/D46421#1374807>, @NoQ wrote:
> At the same time, i don't have any test cases for the actual change in behavior that such canonicalization causes. If the test case that you had in mind is indeed demonstrating this problem, i'd love to have it. If it turns out that your test case doesn't allow us to demonstrate the problem without CTU, then probably it has something to do with `ASTImporter` accidentally canonicalizing the the declaration in `DeclRefExpr` more rarely than the vanilla AST.
This seems unrelated to CTU. The following subset of my test demonstrates this:
// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s
void clang_analyzer_eval(int);
extern const int extInt;
int main()
{
clang_analyzer_eval(extInt == 2); // expected-warning{{TRUE}}
}
extern const int extInt = 2;
Breakpoint 1, (anonymous namespace)::RegionStoreManager::getBindingForVar (this=0xa7b420, B=..., R=0xa7d348)
at /data/work/commitllvm/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1948
1948 if (const Expr *Init = VD->getAnyInitializer()) {
(gdb) p VD->getInit()
$1 = (const clang::Expr *) 0x0
(gdb) p VD->getAnyInitializer()
$2 = (const clang::Expr *) 0xa4b630
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D46421/new/
https://reviews.llvm.org/D46421
More information about the cfe-commits
mailing list