diff options
| author | Mike Stump <mrs@apple.com> | 2009-08-07 19:00:50 +0000 |
|---|---|---|
| committer | Mike Stump <mrs@apple.com> | 2009-08-07 19:00:50 +0000 |
| commit | c266c6d797f74090266fb8812029f92a34fb5151 (patch) | |
| tree | 8565a7856f987095a29a415321049ea65f7425c8 /clang/lib/CodeGen/CGCXX.cpp | |
| parent | 4f4aab2aeb257c6748000009e38354c78690ecb3 (diff) | |
| download | bcm5719-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.cpp | 4 |
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()) |

