diff options
| author | Anders Carlsson <andersca@mac.com> | 2010-03-11 05:48:21 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2010-03-11 05:48:21 +0000 |
| commit | d5531e2d185ddfc0fa0631b0107d810548d1065f (patch) | |
| tree | 4c839c40bb5fa46e05c4c93f65fabb15aeb309ac /clang/lib/CodeGen | |
| parent | fe9009635dd917d365928b130c2d91ce30a7d304 (diff) | |
| download | bcm5719-llvm-d5531e2d185ddfc0fa0631b0107d810548d1065f.tar.gz bcm5719-llvm-d5531e2d185ddfc0fa0631b0107d810548d1065f.zip | |
Run the new vtable builder for construction vtables as well now. Note that we still don't use the data it generates.
llvm-svn: 98239
Diffstat (limited to 'clang/lib/CodeGen')
| -rw-r--r-- | clang/lib/CodeGen/CGVtable.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/clang/lib/CodeGen/CGVtable.cpp b/clang/lib/CodeGen/CGVtable.cpp index 5b9c976d380..b500f4d1130 100644 --- a/clang/lib/CodeGen/CGVtable.cpp +++ b/clang/lib/CodeGen/CGVtable.cpp @@ -3429,20 +3429,17 @@ CGVtableInfo::GenerateVtable(llvm::GlobalVariable::LinkageTypes Linkage, if (GenerateDefinition) { if (LayoutClass == RD) { assert(!IsVirtual && - "Can't only have a virtual base in construction vtables!"); - VtableBuilder Builder(*this, RD, Offset, - /*MostDerivedClassIsVirtual=*/false, - LayoutClass); - - if (CGM.getLangOptions().DumpVtableLayouts) - Builder.dumpLayout(llvm::errs()); - } else if (CGM.getLangOptions().DumpVtableLayouts) { - // We only build construction vtables when dumping vtable layouts for now. - VtableBuilder Builder(*this, RD, Offset, - /*MostDerivedClassIsVirtual=*/IsVirtual, - LayoutClass); - Builder.dumpLayout(llvm::errs()); + "Can only have a virtual base in construction vtables!"); + assert(!Offset && + "Can only have a base offset in construction vtables!"); } + + VtableBuilder Builder(*this, RD, Offset, + /*MostDerivedClassIsVirtual=*/false, + LayoutClass); + + if (CGM.getLangOptions().DumpVtableLayouts) + Builder.dumpLayout(llvm::errs()); } llvm::SmallString<256> OutName; |

