From: Ken Dyck Date: Thu, 7 Apr 2011 01:22:42 +0000 (+0000) Subject: [Reapply r128773. This is not the source of the issues Devang was seeing X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a7f7526b7fd817e3f49c210302d189eff981b5e;p=clang [Reapply r128773. This is not the source of the issues Devang was seeing with debug info.] Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129048 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGVTables.cpp b/lib/CodeGen/CGVTables.cpp index d5eab28e74..8ccba1fa2f 100644 --- a/lib/CodeGen/CGVTables.cpp +++ b/lib/CodeGen/CGVTables.cpp @@ -2438,7 +2438,7 @@ int64_t CodeGenVTables::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD, VirtualBaseClassOffsetOffsetsMapTy::iterator I = VirtualBaseClassOffsetOffsets.find(ClassPair); if (I != VirtualBaseClassOffsetOffsets.end()) - return I->second; + return I->second.getQuantity(); VCallAndVBaseOffsetBuilder Builder(RD, RD, /*FinalOverriders=*/0, BaseSubobject(RD, CharUnits::Zero()), @@ -2452,13 +2452,13 @@ int64_t CodeGenVTables::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD, ClassPairTy ClassPair(RD, I->first); VirtualBaseClassOffsetOffsets.insert( - std::make_pair(ClassPair, I->second.getQuantity())); + std::make_pair(ClassPair, I->second)); } I = VirtualBaseClassOffsetOffsets.find(ClassPair); assert(I != VirtualBaseClassOffsetOffsets.end() && "Did not find index!"); - return I->second; + return I->second.getQuantity(); } uint64_t @@ -2910,7 +2910,7 @@ void CodeGenVTables::ComputeVTableRelatedInformation(const CXXRecordDecl *RD, ClassPairTy ClassPair(RD, I->first); VirtualBaseClassOffsetOffsets.insert( - std::make_pair(ClassPair, I->second.getQuantity())); + std::make_pair(ClassPair, I->second)); } } diff --git a/lib/CodeGen/CGVTables.h b/lib/CodeGen/CGVTables.h index b2f9401858..ed0119b4b2 100644 --- a/lib/CodeGen/CGVTables.h +++ b/lib/CodeGen/CGVTables.h @@ -103,9 +103,9 @@ class CodeGenVTables { const CXXRecordDecl *> ClassPairTy; /// VirtualBaseClassOffsetOffsets - Contains the vtable offset (relative to - /// the address point) in bytes where the offsets for virtual bases of a class + /// the address point) in chars where the offsets for virtual bases of a class /// are stored. - typedef llvm::DenseMap + typedef llvm::DenseMap VirtualBaseClassOffsetOffsetsMapTy; VirtualBaseClassOffsetOffsetsMapTy VirtualBaseClassOffsetOffsets;