xazax.hun added a comment. Herald added a project: clang. In D46421#1375147 <https://reviews.llvm.org/D46421#1375147>, @r.stahl wrote:
> 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 > > I know you probably tired of me making you split all the patches but I think if it is independent of CTU we should submit this fix as a separate commit. This way we could be more focused having one commit doing one thing. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D46421/new/ https://reviews.llvm.org/D46421 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits