From 64c431c90095995a6bad74c34ce03367f09e5fa4 Mon Sep 17 00:00:00 2001 From: George Karpenkov Date: Sat, 15 Sep 2018 02:34:45 +0000 Subject: [PATCH] [analyzer] Further printing improvements: use declarations, skip pointers whenever redundant, use unique prefixes. Differential Revision: https://reviews.llvm.org/D52114 llvm-svn: 342316 --- clang/lib/AST/Stmt.cpp | 1 - clang/lib/StaticAnalyzer/Core/Environment.cpp | 3 +-- clang/lib/StaticAnalyzer/Core/ExprEngine.cpp | 11 +++++------ clang/lib/StaticAnalyzer/Core/MemRegion.cpp | 10 +++++----- clang/lib/StaticAnalyzer/Core/SymbolManager.cpp | 5 ++++- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/clang/lib/AST/Stmt.cpp b/clang/lib/AST/Stmt.cpp index 687b9c2..b03b3a6 100644 --- a/clang/lib/AST/Stmt.cpp +++ b/clang/lib/AST/Stmt.cpp @@ -307,7 +307,6 @@ int64_t Stmt::getID(const ASTContext &Context) const { assert(Out && "Wrong allocator used"); assert(*Out % alignof(Stmt) == 0 && "Wrong alignment information"); return *Out / alignof(Stmt); - } CompoundStmt::CompoundStmt(ArrayRef Stmts, SourceLocation LB, diff --git a/clang/lib/StaticAnalyzer/Core/Environment.cpp b/clang/lib/StaticAnalyzer/Core/Environment.cpp index 4238ceb..c390fe7 100644 --- a/clang/lib/StaticAnalyzer/Core/Environment.cpp +++ b/clang/lib/StaticAnalyzer/Core/Environment.cpp @@ -235,8 +235,7 @@ void Environment::print(raw_ostream &Out, const char *NL, const Stmt *S = I.first.getStmt(); assert(S != nullptr && "Expected non-null Stmt"); - Out << "(LC " << LC->getID() << " <" << (const void *)LC << ">, S " - << S->getID(Context) << " <" << (const void *)S << ">) "; + Out << "(LC" << LC->getID() << ", S" << S->getID(Context) << ") "; S->printPretty(Out, /*Helper=*/nullptr, PP); Out << " : " << I.second << NL; } diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp index a0cb432..63a74df 100644 --- a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp +++ b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -3108,16 +3108,16 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { const Stmt *S = Loc.castAs().getStmt(); assert(S != nullptr && "Expecting non-null Stmt"); - Out << S->getStmtClassName() << ' ' + Out << S->getStmtClassName() << " S" << S->getID(Context) << " <" << (const void *)S << "> "; S->printPretty(Out, /*helper=*/nullptr, Context.getPrintingPolicy(), /*Indentation=*/2, /*NewlineSymbol=*/"\\l"); printLocation(Out, S->getBeginLoc()); if (Loc.getAs()) - Out << "\\lPreStmt\\l;"; + Out << "\\lPreStmt\\l"; else if (Loc.getAs()) - Out << "\\lPostLoad\\l;"; + Out << "\\lPostLoad\\l"; else if (Loc.getAs()) Out << "\\lPostStore\\l"; else if (Loc.getAs()) @@ -3171,9 +3171,8 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { static_cast(State->getStateManager().getOwningEngine()) ->getGraph(); - Out << "StateID: " << State->getID() << " <" << (const void *)State.get() - << ">" - << " NodeID: " << N->getID(&Graph) << " <" << (const void *)N << ">\\|"; + Out << "StateID: ST" << State->getID() << ", NodeID: N" << N->getID(&Graph) + << " <" << (const void *)N << ">\\|"; bool SameAsAllPredecessors = std::all_of(N->pred_begin(), N->pred_end(), [&](const ExplodedNode *P) { diff --git a/clang/lib/StaticAnalyzer/Core/MemRegion.cpp b/clang/lib/StaticAnalyzer/Core/MemRegion.cpp index a3d3eb2..f262f27 100644 --- a/clang/lib/StaticAnalyzer/Core/MemRegion.cpp +++ b/clang/lib/StaticAnalyzer/Core/MemRegion.cpp @@ -457,7 +457,7 @@ void MemRegion::dumpToStream(raw_ostream &os) const { } void AllocaRegion::dumpToStream(raw_ostream &os) const { - os << "alloca{" << static_cast(Ex) << ',' << Cnt << '}'; + os << "alloca{S" << Ex->getID(getContext()) << ',' << Cnt << '}'; } void FunctionCodeRegion::dumpToStream(raw_ostream &os) const { @@ -481,12 +481,12 @@ void BlockDataRegion::dumpToStream(raw_ostream &os) const { void CompoundLiteralRegion::dumpToStream(raw_ostream &os) const { // FIXME: More elaborate pretty-printing. - os << "{ " << static_cast(CL) << " }"; + os << "{ S" << CL->getID(getContext()) << " }"; } void CXXTempObjectRegion::dumpToStream(raw_ostream &os) const { - os << "temp_object{" << getValueType().getAsString() << ',' - << static_cast(Ex) << '}'; + os << "temp_object{" << getValueType().getAsString() << ", " + << "S" << Ex->getID(getContext()) << '}'; } void CXXBaseObjectRegion::dumpToStream(raw_ostream &os) const { @@ -535,7 +535,7 @@ void VarRegion::dumpToStream(raw_ostream &os) const { if (const IdentifierInfo *ID = VD->getIdentifier()) os << ID->getName(); else - os << "VarRegion{" << static_cast(this) << '}'; + os << "VarRegion{D" << VD->getID() << '}'; } LLVM_DUMP_METHOD void RegionRawOffset::dump() const { diff --git a/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp b/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp index ed19701..ec1224e 100644 --- a/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp +++ b/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp @@ -83,7 +83,10 @@ void SymbolCast::dumpToStream(raw_ostream &os) const { } void SymbolConjured::dumpToStream(raw_ostream &os) const { - os << "conj_$" << getSymbolID() << '{' << T.getAsString() << '}'; + os << "conj_$" << getSymbolID() << '{' << T.getAsString() + << ", LC" << LCtx->getID() << ", S" << S->getID( + LCtx->getDecl()->getASTContext()) << ", #" << Count + << '}'; } void SymbolDerived::dumpToStream(raw_ostream &os) const { -- 2.7.4