summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/CFG.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-10-22 23:19:47 +0000
committerJordan Rose <jordan_rose@apple.com>2013-10-22 23:19:47 +0000
commit69d0aed6f17a352da5a5f1bbddf6c2508b1e586a (patch)
tree8f708c24182dc3224acfb541f3e460fb5c236df9 /clang/lib/Analysis/CFG.cpp
parentaf589f70d090df47e80b176bbf6d9c0e754c34c9 (diff)
downloadbcm5719-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.cpp4
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 =
OpenPOWER on IntegriCloud