From d0fb3adeed631385a53d15ced60d67c5f64eb133 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 24 Jan 2011 17:25:03 +0000 Subject: [PATCH] Improve the printing of C++ construction expressions, from Yuri Gribov! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124123 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/StmtPrinter.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp index cea3173eb6..74429ce31d 100644 --- a/lib/AST/StmtPrinter.cpp +++ b/lib/AST/StmtPrinter.cpp @@ -1128,14 +1128,15 @@ void StmtPrinter::VisitCXXPseudoDestructorExpr(CXXPseudoDestructorExpr *E) { } void StmtPrinter::VisitCXXConstructExpr(CXXConstructExpr *E) { - // FIXME. For now we just print a trivial constructor call expression, - // constructing its first argument object. - if (E->getNumArgs() == 1) { - CXXConstructorDecl *CD = E->getConstructor(); - if (CD->isTrivial()) - PrintExpr(E->getArg(0)); + for (unsigned i = 0, e = E->getNumArgs(); i != e; ++i) { + if (isa(E->getArg(i))) { + // Don't print any defaulted arguments + break; + } + + if (i) OS << ", "; + PrintExpr(E->getArg(i)); } - // Nothing to print. } void StmtPrinter::VisitExprWithCleanups(ExprWithCleanups *E) {