summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-12-04 20:55:13 +0000
committerMike Stump <mrs@apple.com>2009-12-04 20:55:13 +0000
commitafe4764fa59ccf6b33fdbf73667fe68f890b363f (patch)
tree2fd032680fd837160bebd2b4c6e5122407e89b95 /clang/lib/CodeGen
parent45805b9a50732045f49b395d7baa80703321aab4 (diff)
downloadbcm5719-llvm-afe4764fa59ccf6b33fdbf73667fe68f890b363f.tar.gz
bcm5719-llvm-afe4764fa59ccf6b33fdbf73667fe68f890b363f.zip
Be sure to instantiate rtti for non-polymorphic bases.
llvm-svn: 90586
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/CGRTTI.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGRTTI.cpp b/clang/lib/CodeGen/CGRTTI.cpp
index f43920c13f1..248fe89271c 100644
--- a/clang/lib/CodeGen/CGRTTI.cpp
+++ b/clang/lib/CodeGen/CGRTTI.cpp
@@ -231,7 +231,10 @@ public:
e = RD->bases_end(); i != e; ++i) {
const CXXRecordDecl *Base =
cast<CXXRecordDecl>(i->getType()->getAs<RecordType>()->getDecl());
- info.push_back(CGM.GenerateRTTIRef(Base));
+ if (Base->isPolymorphic())
+ info.push_back(CGM.GenerateRTTIRef(Base));
+ else
+ info.push_back(CGM.GenerateRTTI(Base));
if (simple)
break;
int64_t offset;
OpenPOWER on IntegriCloud