aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-05-17 01:05:34 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-05-17 01:05:34 +0000
commitb3e229694a5d1966fcf604073e82b0057eb3114a (patch)
tree2d39d2f01e58850ddefda242d13a518737513f5b
parent8ff8c2278cf5ef26e40314dfbb363e32542da032 (diff)
A couple of tweaks to make -ast-print produce code that's closer to
valid C code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71971 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/AST/StmtPrinter.cpp4
-rw-r--r--tools/clang-cc/ASTConsumers.cpp27
2 files changed, 16 insertions, 15 deletions
diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp
index cf1a255236..380634daf3 100644
--- a/lib/AST/StmtPrinter.cpp
+++ b/lib/AST/StmtPrinter.cpp
@@ -289,9 +289,9 @@ void StmtPrinter::VisitDoStmt(DoStmt *Node) {
Indent();
}
- OS << "while ";
+ OS << "while (";
PrintExpr(Node->getCond());
- OS << ";\n";
+ OS << ");\n";
}
void StmtPrinter::VisitForStmt(ForStmt *Node) {
diff --git a/tools/clang-cc/ASTConsumers.cpp b/tools/clang-cc/ASTConsumers.cpp
index d68b61cc3d..48bf85b4dc 100644
--- a/tools/clang-cc/ASTConsumers.cpp
+++ b/tools/clang-cc/ASTConsumers.cpp
@@ -141,19 +141,20 @@ void DeclPrinter:: PrintDecl(Decl *D) {
if (const IdentifierInfo *II = TD->getIdentifier())
Out << II->getName();
- Out << " {\n";
- ChangeIndent(1);
- // FIXME: Shouldn't pass a NULL context
- ASTContext *Context = 0;
- for (DeclContext::decl_iterator i = TD->decls_begin(*Context);
- i != TD->decls_end(*Context);
- ++i)
- PrintDecl(*i);
- ChangeIndent(-1);
- Indent();
- Out << "}";
-
- Out << "\n";
+ if (TD->isDefinition()) {
+ Out << " {\n";
+ ChangeIndent(1);
+ // FIXME: Shouldn't pass a NULL context
+ ASTContext *Context = 0;
+ for (DeclContext::decl_iterator i = TD->decls_begin(*Context);
+ i != TD->decls_end(*Context);
+ ++i)
+ PrintDecl(*i);
+ ChangeIndent(-1);
+ Indent();
+ Out << "}";
+ }
+ Out << ";\n";
} else if (TemplateDecl *TempD = dyn_cast<TemplateDecl>(D)) {
PrintTemplateDecl(TempD);
} else if (LinkageSpecDecl *LSD = dyn_cast<LinkageSpecDecl>(D)) {