diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-05-17 01:05:34 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-05-17 01:05:34 +0000 |
commit | b3e229694a5d1966fcf604073e82b0057eb3114a (patch) | |
tree | 2d39d2f01e58850ddefda242d13a518737513f5b | |
parent | 8ff8c2278cf5ef26e40314dfbb363e32542da032 (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.cpp | 4 | ||||
-rw-r--r-- | tools/clang-cc/ASTConsumers.cpp | 27 |
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)) { |