From 45956a467e4faa0dc29b92c32b106db2f38c6b2a Mon Sep 17 00:00:00 2001 From: Ken Dyck Date: Wed, 30 Mar 2011 00:50:28 +0000 Subject: Convert the OffsetInLayoutClass parameter of LayoutSecondaryVTables to CharUnits. No change in functionality intended. llvm-svn: 128516 --- clang/lib/CodeGen/CGVTables.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'clang/lib/CodeGen/CGVTables.cpp') diff --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp index 402377cc0fa..8460bda03c8 100644 --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -1135,7 +1135,7 @@ private: /// \param BaseIsMorallyVirtual whether the base subobject is a virtual base /// or a direct or indirect base of a virtual base. void LayoutSecondaryVTables(BaseSubobject Base, bool BaseIsMorallyVirtual, - uint64_t OffsetInLayoutClass); + CharUnits OffsetInLayoutClass); /// DeterminePrimaryVirtualBases - Determine the primary virtual bases in this /// class hierarchy. @@ -1815,13 +1815,12 @@ VTableBuilder::LayoutPrimaryAndSecondaryVTables(BaseSubobject Base, } // Layout secondary vtables. - LayoutSecondaryVTables(Base, BaseIsMorallyVirtual, - Context.toBits(OffsetInLayoutClass)); + LayoutSecondaryVTables(Base, BaseIsMorallyVirtual, OffsetInLayoutClass); } void VTableBuilder::LayoutSecondaryVTables(BaseSubobject Base, bool BaseIsMorallyVirtual, - uint64_t OffsetInLayoutClass) { + CharUnits OffsetInLayoutClass) { // Itanium C++ ABI 2.5.2: // Following the primary virtual table of a derived class are secondary // virtual tables for each of its proper base classes, except any primary @@ -1859,14 +1858,13 @@ void VTableBuilder::LayoutSecondaryVTables(BaseSubobject Base, CharUnits BaseOffset = Base.getBaseOffset() + RelativeBaseOffset; CharUnits BaseOffsetInLayoutClass = - Context.toCharUnitsFromBits(OffsetInLayoutClass) + RelativeBaseOffset; + OffsetInLayoutClass + RelativeBaseOffset; // Don't emit a secondary vtable for a primary base. We might however want // to emit secondary vtables for other bases of this base. if (BaseDecl == PrimaryBase) { - LayoutSecondaryVTables( - BaseSubobject(BaseDecl, BaseOffset), - BaseIsMorallyVirtual, Context.toBits(BaseOffsetInLayoutClass)); + LayoutSecondaryVTables(BaseSubobject(BaseDecl, BaseOffset), + BaseIsMorallyVirtual, BaseOffsetInLayoutClass); continue; } -- cgit v1.2.3