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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits