]> granicus.if.org Git - clang/commitdiff
[Reapply r128773. This is not the source of the issues Devang was seeing
authorKen Dyck <kd@kendyck.com>
Thu, 7 Apr 2011 01:22:42 +0000 (01:22 +0000)
committerKen Dyck <kd@kendyck.com>
Thu, 7 Apr 2011 01:22:42 +0000 (01:22 +0000)
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

lib/CodeGen/CGVTables.cpp
lib/CodeGen/CGVTables.h

index d5eab28e743593b81a731de4f3283b9222264dee..8ccba1fa2f6b6dda8861f6e39be223d8ad67173c 100644 (file)
@@ -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));
   }
 }
 
index b2f940185858b1f90d125ed50f22d08387d81aca..ed0119b4b23a8af6915a417d10331d42625e3941 100644 (file)
@@ -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<ClassPairTy, int64_t
+  typedef llvm::DenseMap<ClassPairTy, CharUnits
     VirtualBaseClassOffsetOffsetsMapTy;
   VirtualBaseClassOffsetOffsetsMapTy VirtualBaseClassOffsetOffsets;