From 54be4c5b80c31eb9609da3e5423950126bd0de6c Mon Sep 17 00:00:00 2001 From: Richard Trieu Date: Fri, 12 Sep 2014 21:20:53 +0000 Subject: [PATCH] Don't print 'NULL TYPE' when dumping a delegating constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217707 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/ASTDumper.cpp | 6 +++++- test/Misc/ast-dump-decl.cpp | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp index d9dc8b57df..d134e646eb 100644 --- a/lib/AST/ASTDumper.cpp +++ b/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/test/Misc/ast-dump-decl.cpp b/test/Misc/ast-dump-decl.cpp index b41e4ee3d0..fe7ea7503d 100644 --- a/test/Misc/ast-dump-decl.cpp +++ b/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() { } -- 2.40.0