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) {