diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2013-02-03 23:02:47 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2013-02-03 23:02:47 +0000 |
commit | b614fab39dcf101ec9c87bf84b0c75a3e43e7cfe (patch) | |
tree | 91b7a51fec0d5868e5ee479ffc941a3c3fe7c5ca /clang/lib/AST/DeclPrinter.cpp | |
parent | 4c4ffd7783970e0dee30722602c95a02e6e5c5c0 (diff) | |
download | bcm5719-llvm-b614fab39dcf101ec9c87bf84b0c75a3e43e7cfe.tar.gz bcm5719-llvm-b614fab39dcf101ec9c87bf84b0c75a3e43e7cfe.zip |
DeclPrinter: fix CXXConstructExpr printing with implicit default argument
This is an improvement of r173630, that handles the following case:
struct VirualDestrClass
{
VirualDestrClass(int arg);
virtual ~VirualDestrClass();
};
struct ConstrWithCleanupsClass
{
ConstrWithCleanupsClass(const VirualDestrClass& cplx = VirualDestrClass(42));
};
ConstrWithCleanupsClass cwcNoArg;
That was printed as:
ConstrWithCleanupsClass cwcNoArg();
llvm-svn: 174296
Diffstat (limited to 'clang/lib/AST/DeclPrinter.cpp')
-rw-r--r-- | clang/lib/AST/DeclPrinter.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/AST/DeclPrinter.cpp b/clang/lib/AST/DeclPrinter.cpp index f863bb49d57..333e321d407 100644 --- a/clang/lib/AST/DeclPrinter.cpp +++ b/clang/lib/AST/DeclPrinter.cpp @@ -649,7 +649,8 @@ void DeclPrinter::VisitVarDecl(VarDecl *D) { Expr *Init = D->getInit(); if (!Policy.SuppressInitializers && Init) { bool ImplicitInit = false; - if (CXXConstructExpr *Construct = dyn_cast<CXXConstructExpr>(Init)) { + if (CXXConstructExpr *Construct = + dyn_cast<CXXConstructExpr>(Init->IgnoreImplicit())) { if (D->getInitStyle() == VarDecl::CallInit && !Construct->isListInitialization()) { ImplicitInit = Construct->getNumArgs() == 0 || |