diff options
author | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-22 14:50:20 +0000 |
---|---|---|
committer | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-22 14:50:20 +0000 |
commit | 8b14242fe5043a75d880e9532ae5f0d1e8840b85 (patch) | |
tree | f28ec75eab4f31accc0d57440dbbc0c2a8c09e99 /clang/lib/AST/VTableBuilder.cpp | |
parent | 2794c47243728a3014d041f0f4445131c5d3f7dd (diff) | |
download | bcm5719-llvm-8b14242fe5043a75d880e9532ae5f0d1e8840b85.tar.gz bcm5719-llvm-8b14242fe5043a75d880e9532ae5f0d1e8840b85.zip |
Drop the unneeded VBase field from MethodInfo in the VFTableBuilder class
llvm-svn: 193164
Diffstat (limited to 'clang/lib/AST/VTableBuilder.cpp')
-rw-r--r-- | clang/lib/AST/VTableBuilder.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/clang/lib/AST/VTableBuilder.cpp b/clang/lib/AST/VTableBuilder.cpp index 2da089186c9..a161802b291 100644 --- a/clang/lib/AST/VTableBuilder.cpp +++ b/clang/lib/AST/VTableBuilder.cpp @@ -2483,10 +2483,6 @@ private: /// this method's base has, or zero. const uint64_t VBTableIndex; - /// VBase - If nonnull, holds the last vbase which contains the vfptr that - /// the method definition is adjusted to. - const CXXRecordDecl *VBase; - /// VFTableIndex - The index in the vftable that this method has. const uint64_t VFTableIndex; @@ -2495,13 +2491,11 @@ private: /// or used for vcalls in the most derived class. bool Shadowed; - MethodInfo(uint64_t VBTableIndex, const CXXRecordDecl *VBase, - uint64_t VFTableIndex) - : VBTableIndex(VBTableIndex), VBase(VBase), VFTableIndex(VFTableIndex), + MethodInfo(uint64_t VBTableIndex, uint64_t VFTableIndex) + : VBTableIndex(VBTableIndex), VFTableIndex(VFTableIndex), Shadowed(false) {} - MethodInfo() - : VBTableIndex(0), VBase(0), VFTableIndex(0), Shadowed(false) {} + MethodInfo() : VBTableIndex(0), VFTableIndex(0), Shadowed(false) {} }; typedef llvm::DenseMap<const CXXMethodDecl *, MethodInfo> MethodInfoMapTy; @@ -2579,7 +2573,7 @@ private: // and the entries shadowed by return adjusting thunks. if (MD->getParent() != MostDerivedClass || MI.Shadowed) continue; - MethodVFTableLocation Loc(MI.VBTableIndex, MI.VBase, + MethodVFTableLocation Loc(MI.VBTableIndex, WhichVFPtr.LastVBase, WhichVFPtr.VFPtrOffset, MI.VFTableIndex); if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) { MethodVFTableLocations[GlobalDecl(DD, Dtor_Deleting)] = Loc; @@ -2873,7 +2867,6 @@ void VFTableBuilder::AddMethods(BaseSubobject Base, unsigned BaseDepth, // No return adjustment needed - just replace the overridden method info // with the current info. MethodInfo MI(OverriddenMethodInfo.VBTableIndex, - OverriddenMethodInfo.VBase, OverriddenMethodInfo.VFTableIndex); MethodInfoMap.erase(OverriddenMDIterator); @@ -2919,7 +2912,7 @@ void VFTableBuilder::AddMethods(BaseSubobject Base, unsigned BaseDepth, // it requires return adjustment. Insert the method info for this method. unsigned VBIndex = LastVBase ? GetVBTableIndex(MostDerivedClass, LastVBase) : 0; - MethodInfo MI(VBIndex, LastVBase, Components.size()); + MethodInfo MI(VBIndex, Components.size()); assert(!MethodInfoMap.count(MD) && "Should not have method info for this method yet!"); |