diff options
author | Jordan Rose <jordan_rose@apple.com> | 2013-10-22 23:19:47 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2013-10-22 23:19:47 +0000 |
commit | 69d0aed6f17a352da5a5f1bbddf6c2508b1e586a (patch) | |
tree | 8f708c24182dc3224acfb541f3e460fb5c236df9 /clang/lib/Analysis/CFG.cpp | |
parent | af589f70d090df47e80b176bbf6d9c0e754c34c9 (diff) | |
download | bcm5719-llvm-69d0aed6f17a352da5a5f1bbddf6c2508b1e586a.tar.gz bcm5719-llvm-69d0aed6f17a352da5a5f1bbddf6c2508b1e586a.zip |
CFG: Properly print delegating initializer CFG elements.
...rather than segfaulting.
Patch by Enrico P!
llvm-svn: 193208
Diffstat (limited to 'clang/lib/Analysis/CFG.cpp')
-rw-r--r-- | clang/lib/Analysis/CFG.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index c7fe9f3a886..5b48a15def0 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/lib/Analysis/CFG.cpp @@ -3762,6 +3762,8 @@ static void print_elem(raw_ostream &OS, StmtPrinterHelper* Helper, const CXXCtorInitializer *I = IE->getInitializer(); if (I->isBaseInitializer()) OS << I->getBaseClass()->getAsCXXRecordDecl()->getName(); + else if (I->isDelegatingInitializer()) + OS << I->getTypeSourceInfo()->getType()->getAsCXXRecordDecl()->getName(); else OS << I->getAnyMember()->getName(); OS << "("; @@ -3771,6 +3773,8 @@ static void print_elem(raw_ostream &OS, StmtPrinterHelper* Helper, if (I->isBaseInitializer()) OS << " (Base initializer)\n"; + else if (I->isDelegatingInitializer()) + OS << " (Delegating initializer)\n"; else OS << " (Member initializer)\n"; } else if (Optional<CFGAutomaticObjDtor> DE = |