From: Eli Friedman Date: Sun, 17 May 2009 01:05:34 +0000 (+0000) Subject: A couple of tweaks to make -ast-print produce code that's closer to X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b3e229694a5d1966fcf604073e82b0057eb3114a;p=clang 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 --- 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(D)) { PrintTemplateDecl(TempD); } else if (LinkageSpecDecl *LSD = dyn_cast(D)) {