summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCXX.cpp
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-08-07 19:00:50 +0000
committerMike Stump <mrs@apple.com>2009-08-07 19:00:50 +0000
commitc266c6d797f74090266fb8812029f92a34fb5151 (patch)
tree8565a7856f987095a29a415321049ea65f7425c8 /clang/lib/CodeGen/CGCXX.cpp
parent4f4aab2aeb257c6748000009e38354c78690ecb3 (diff)
downloadbcm5719-llvm-c266c6d797f74090266fb8812029f92a34fb5151.tar.gz
bcm5719-llvm-c266c6d797f74090266fb8812029f92a34fb5151.zip
Add ability to generate vcall offsets for primary virtual base.
llvm-svn: 78396
Diffstat (limited to 'clang/lib/CodeGen/CGCXX.cpp')
-rw-r--r--clang/lib/CodeGen/CGCXX.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGCXX.cpp b/clang/lib/CodeGen/CGCXX.cpp
index 00993be161b..d5b21345ea1 100644
--- a/clang/lib/CodeGen/CGCXX.cpp
+++ b/clang/lib/CodeGen/CGCXX.cpp
@@ -614,9 +614,11 @@ llvm::Value *CodeGenFunction::GenerateVtable(const CXXRecordDecl *RD) {
const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD);
const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase();
+ const bool PrimaryBaseWasVirtual = Layout.getPrimaryBase();
// The primary base comes first.
- GenerateVtableForBase(PrimaryBase, RD, rtti, methods, true);
+ GenerateVtableForBase(PrimaryBase, RD, rtti, methods, true,
+ PrimaryBaseWasVirtual);
for (CXXRecordDecl::base_class_const_iterator i = RD->bases_begin(),
e = RD->bases_end(); i != e; ++i) {
if (i->isVirtual())
OpenPOWER on IntegriCloud