Author: dergachev Date: Mon Oct 22 13:11:10 2018 New Revision: 344944 URL: http://llvm.org/viewvc/llvm-project?rev=344944&view=rev Log: [analyzer] Fix dumping for SymbolConjured conjured at no particular statement.
Added: cfe/trunk/test/Analysis/dump_egraph.cpp Modified: cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp Modified: cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp?rev=344944&r1=344943&r2=344944&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp Mon Oct 22 13:11:10 2018 @@ -83,10 +83,13 @@ void SymbolCast::dumpToStream(raw_ostrea } void SymbolConjured::dumpToStream(raw_ostream &os) const { - os << "conj_$" << getSymbolID() << '{' << T.getAsString() - << ", LC" << LCtx->getID() << ", S" << S->getID( - LCtx->getDecl()->getASTContext()) << ", #" << Count - << '}'; + os << "conj_$" << getSymbolID() << '{' << T.getAsString() << ", LC" + << LCtx->getID(); + if (S) + os << ", S" << S->getID(LCtx->getDecl()->getASTContext()); + else + os << ", no stmt"; + os << ", #" << Count << '}'; } void SymbolDerived::dumpToStream(raw_ostream &os) const { Added: cfe/trunk/test/Analysis/dump_egraph.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/dump_egraph.cpp?rev=344944&view=auto ============================================================================== --- cfe/trunk/test/Analysis/dump_egraph.cpp (added) +++ cfe/trunk/test/Analysis/dump_egraph.cpp Mon Oct 22 13:11:10 2018 @@ -0,0 +1,15 @@ +// RUN: %clang_analyze_cc1 -analyzer-checker=core -analyzer-dump-egraph=%t.dot %s +// RUN: cat %t.dot | FileCheck %s +// REQUIRES: asserts + + +struct S { + ~S(); +}; + +void foo() { + // Test that dumping symbols conjured on null statements doesn't crash. + S s; +} + +// CHECK: conj_$0\{int, LC1, no stmt, #1\} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits