forked from OSchip/llvm-project
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. llvm-svn: 348717
This commit is contained in:
parent
39271a195b
commit
3283535dc8
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue