aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/CGRTTI.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/CodeGen/CGRTTI.cpp b/lib/CodeGen/CGRTTI.cpp
index f43920c13f..248fe89271 100644
--- a/lib/CodeGen/CGRTTI.cpp
+++ b/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;