pretty print some nodes more nicely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41989 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/StmtPrinter.cpp b/AST/StmtPrinter.cpp
index 44a04f6..9e8f3e9 100644
--- a/AST/StmtPrinter.cpp
+++ b/AST/StmtPrinter.cpp
@@ -243,9 +243,17 @@
}
void StmtPrinter::VisitDoStmt(DoStmt *Node) {
- Indent() << "do\n";
- PrintStmt(Node->getBody());
- Indent() << "while ";
+ Indent() << "do ";
+ if (CompoundStmt *CS = dyn_cast<CompoundStmt>(Node->getBody())) {
+ PrintRawCompoundStmt(CS);
+ OS << " ";
+ } else {
+ OS << "\n";
+ PrintStmt(Node->getBody());
+ Indent();
+ }
+
+ OS << "while ";
PrintExpr(Node->getCond());
OS << ";\n";
}
@@ -258,14 +266,25 @@
else
PrintExpr(cast<Expr>(Node->getInit()));
}
- OS << "; ";
- if (Node->getCond())
+ OS << ";";
+ if (Node->getCond()) {
+ OS << " ";
PrintExpr(Node->getCond());
- OS << "; ";
- if (Node->getInc())
+ }
+ OS << ";";
+ if (Node->getInc()) {
+ OS << " ";
PrintExpr(Node->getInc());
- OS << ")\n";
- PrintStmt(Node->getBody());
+ }
+ OS << ") ";
+
+ if (CompoundStmt *CS = dyn_cast<CompoundStmt>(Node->getBody())) {
+ PrintRawCompoundStmt(CS);
+ OS << "\n";
+ } else {
+ OS << "\n";
+ PrintStmt(Node->getBody());
+ }
}
void StmtPrinter::VisitGotoStmt(GotoStmt *Node) {