summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2014-09-12 21:20:53 +0000
committerRichard Trieu <rtrieu@google.com>2014-09-12 21:20:53 +0000
commit40bcd9f664d34de9e9038c0daad0021b7017d2c6 (patch)
tree5ec0f085b4f3da9265eafd3c72350131004542da /clang
parentec4f873d349bb647c0dce9195c1e6b1fcc016f3b (diff)
downloadbcm5719-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.cpp6
-rw-r--r--clang/test/Misc/ast-dump-decl.cpp5
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() { }
OpenPOWER on IntegriCloud