diff options
| author | Richard Trieu <rtrieu@google.com> | 2014-09-12 21:20:53 +0000 |
|---|---|---|
| committer | Richard Trieu <rtrieu@google.com> | 2014-09-12 21:20:53 +0000 |
| commit | 40bcd9f664d34de9e9038c0daad0021b7017d2c6 (patch) | |
| tree | 5ec0f085b4f3da9265eafd3c72350131004542da /clang | |
| parent | ec4f873d349bb647c0dce9195c1e6b1fcc016f3b (diff) | |
| download | bcm5719-llvm-40bcd9f664d34de9e9038c0daad0021b7017d2c6.tar.gz bcm5719-llvm-40bcd9f664d34de9e9038c0daad0021b7017d2c6.zip | |
Don't print 'NULL TYPE' when dumping a delegating constructor.
llvm-svn: 217707
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/AST/ASTDumper.cpp | 6 | ||||
| -rw-r--r-- | clang/test/Misc/ast-dump-decl.cpp | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/AST/ASTDumper.cpp b/clang/lib/AST/ASTDumper.cpp index d9dc8b57dfb..d134e646eb9 100644 --- a/clang/lib/AST/ASTDumper.cpp +++ b/clang/lib/AST/ASTDumper.cpp @@ -709,8 +709,12 @@ void ASTDumper::dumpCXXCtorInitializer(const CXXCtorInitializer *Init) { if (Init->isAnyMemberInitializer()) { OS << ' '; dumpBareDeclRef(Init->getAnyMember()); - } else { + } else if (Init->isBaseInitializer()) { dumpType(QualType(Init->getBaseClass(), 0)); + } else if (Init->isDelegatingInitializer()) { + dumpType(Init->getTypeSourceInfo()->getType()); + } else { + llvm_unreachable("Unknown initializer type"); } dumpStmt(Init->getInit()); } diff --git a/clang/test/Misc/ast-dump-decl.cpp b/clang/test/Misc/ast-dump-decl.cpp index b41e4ee3d0f..fe7ea7503df 100644 --- a/clang/test/Misc/ast-dump-decl.cpp +++ b/clang/test/Misc/ast-dump-decl.cpp @@ -116,6 +116,7 @@ namespace testCXXConstructorDecl { class TestCXXConstructorDecl : public A { int I; TestCXXConstructorDecl(A &a, int i) : A(a), I(i) { } + TestCXXConstructorDecl(A &a) : TestCXXConstructorDecl(a, 0) { } }; } // CHECK: CXXConstructorDecl{{.*}} TestCXXConstructorDecl 'void {{.*}}' @@ -126,6 +127,10 @@ namespace testCXXConstructorDecl { // CHECK: CXXCtorInitializer{{.*}}I // CHECK-NEXT: Expr // CHECK: CompoundStmt +// CHECK: CXXConstructorDecl{{.*}} TestCXXConstructorDecl 'void {{.*}}' +// CHECK-NEXT: ParmVarDecl{{.*}} a +// CHECK-NEXT: CXXCtorInitializer{{.*}}TestCXXConstructorDecl +// CHECK-NEXT: CXXConstructExpr{{.*}}TestCXXConstructorDecl class TestCXXDestructorDecl { ~TestCXXDestructorDecl() { } |

