diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/ASTDumper.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/clang/lib/AST/ASTDumper.cpp b/clang/lib/AST/ASTDumper.cpp index b95813ed7c1..d1d7097a64e 100644 --- a/clang/lib/AST/ASTDumper.cpp +++ b/clang/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"); } } |

