From ccdd734a545205083992c518bd97c1f10a2f4c63 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sun, 9 Dec 2018 13:23:07 +0000 Subject: [PATCH] Introduce optional labels to dumpStmt If the label is present, it is added as a child, with the statement a child of the label. This preserves behavior of the InitListExpr dump output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@348717 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/ASTDumper.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp index b95813ed7c..d1d7097a64 100644 --- a/lib/AST/ASTDumper.cpp +++ b/lib/AST/ASTDumper.cpp @@ -83,7 +83,8 @@ namespace { void setDeserialize(bool D) { Deserialize = D; } void dumpDecl(const Decl *D); - void dumpStmt(const Stmt *S); + void dumpStmt(const Stmt *S, const char *label = nullptr); + void dumpStmtImpl(const Stmt *S); // Utilities void dumpType(QualType T) { NodeDumper.dumpType(T); } @@ -1711,7 +1712,18 @@ void ASTDumper::VisitBlockDecl(const BlockDecl *D) { // Stmt dumping methods. //===----------------------------------------------------------------------===// -void ASTDumper::dumpStmt(const Stmt *S) { +void ASTDumper::dumpStmt(const Stmt *S, const char *label) { + if (label) { + dumpChild([=] { + OS << label; + dumpStmtImpl(S); + }); + } else { + dumpStmtImpl(S); + } +} + +void ASTDumper::dumpStmtImpl(const Stmt *S) { dumpChild([=] { if (!S) { ColorScope Color(OS, ShowColors, NullColor); @@ -1978,10 +1990,7 @@ void ASTDumper::VisitInitListExpr(const InitListExpr *ILE) { NodeDumper.dumpBareDeclRef(Field); } if (auto *Filler = ILE->getArrayFiller()) { - dumpChild([=] { - OS << "array filler"; - dumpStmt(Filler); - }); + dumpStmt(Filler, "array filler"); } } -- 2.40.0