summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclPrinter.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2013-01-27 21:28:24 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2013-01-27 21:28:24 +0000
commit6835e37cec0efb84cdaa476a1447aa7a2bec6432 (patch)
tree432e2c2297fd3ec48914c49ec845958190131617 /clang/lib/AST/DeclPrinter.cpp
parentf2ecd409297626d672d55c2fdaebbfea8fc2d401 (diff)
downloadbcm5719-llvm-6835e37cec0efb84cdaa476a1447aa7a2bec6432.tar.gz
bcm5719-llvm-6835e37cec0efb84cdaa476a1447aa7a2bec6432.zip
Decl printer: fix CXXConstructExpr with implicit default argument
Patch by Will Wilson. llvm-svn: 173630
Diffstat (limited to 'clang/lib/AST/DeclPrinter.cpp')
-rw-r--r--clang/lib/AST/DeclPrinter.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/AST/DeclPrinter.cpp b/clang/lib/AST/DeclPrinter.cpp
index b4005221f47..6057f601362 100644
--- a/clang/lib/AST/DeclPrinter.cpp
+++ b/clang/lib/AST/DeclPrinter.cpp
@@ -646,9 +646,13 @@ void DeclPrinter::VisitVarDecl(VarDecl *D) {
Expr *Init = D->getInit();
if (!Policy.SuppressInitializers && Init) {
bool ImplicitInit = false;
- if (CXXConstructExpr *Construct = dyn_cast<CXXConstructExpr>(Init))
- ImplicitInit = D->getInitStyle() == VarDecl::CallInit &&
- Construct->getNumArgs() == 0 && !Construct->isListInitialization();
+ if (CXXConstructExpr *Construct = dyn_cast<CXXConstructExpr>(Init)) {
+ if (D->getInitStyle() == VarDecl::CallInit &&
+ !Construct->isListInitialization()) {
+ ImplicitInit = Construct->getNumArgs() == 0 ||
+ Construct->getArg(0)->isDefaultArgument();
+ }
+ }
if (!ImplicitInit) {
if ((D->getInitStyle() == VarDecl::CallInit) && !isa<ParenListExpr>(Init))
Out << "(";
OpenPOWER on IntegriCloud