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
This commit is contained in:
Douglas Gregor 2011-01-24 17:25:03 +00:00
Родитель cb88a1f968
Коммит d0fb3adeed
1 изменённых файлов: 8 добавлений и 7 удалений

Просмотреть файл

@ -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<CXXDefaultArgExpr>(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) {