diff options
author | Ken Dyck <kd@kendyck.com> | 2011-03-26 01:09:13 +0000 |
---|---|---|
committer | Ken Dyck <kd@kendyck.com> | 2011-03-26 01:09:13 +0000 |
commit | 70b47e08dc1f5e7c6bf44442a14ba9a2712f399e (patch) | |
tree | 5ac77e66281686e1f55620b6a799acee43fc9a0b /clang/lib | |
parent | 6d5b79fc2a35100d9f74c2573665f52395a2cab3 (diff) | |
download | bcm5719-llvm-70b47e08dc1f5e7c6bf44442a14ba9a2712f399e.tar.gz bcm5719-llvm-70b47e08dc1f5e7c6bf44442a14ba9a2712f399e.zip |
Convert the offsets in SubobjectOffsetMapTy to CharUnits. No change in
functionality intended.
llvm-svn: 128317
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/CodeGen/CGVTables.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp index 414900bde47..cc0da893552 100644 --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -104,7 +104,7 @@ private: /// as a record decl and a subobject number) and its offsets in the most /// derived class as well as the layout class. typedef llvm::DenseMap<std::pair<const CXXRecordDecl *, unsigned>, - uint64_t> SubobjectOffsetMapTy; + CharUnits> SubobjectOffsetMapTy; typedef llvm::DenseMap<const CXXRecordDecl *, unsigned> SubobjectCountMapTy; @@ -182,7 +182,7 @@ FinalOverriders::FinalOverriders(const CXXRecordDecl *MostDerivedClass, SubobjectNumber)) && "Did not find subobject offset!"); - uint64_t BaseOffset = SubobjectOffsets[std::make_pair(MD->getParent(), + CharUnits BaseOffset = SubobjectOffsets[std::make_pair(MD->getParent(), SubobjectNumber)]; assert(I->second.size() == 1 && "Final overrider is not unique!"); @@ -192,14 +192,15 @@ FinalOverriders::FinalOverriders(const CXXRecordDecl *MostDerivedClass, assert(SubobjectLayoutClassOffsets.count( std::make_pair(OverriderRD, Method.Subobject)) && "Did not find subobject offset!"); - uint64_t OverriderOffset = + CharUnits OverriderOffset = SubobjectLayoutClassOffsets[std::make_pair(OverriderRD, Method.Subobject)]; - OverriderInfo& Overrider = OverridersMap[std::make_pair(MD, BaseOffset)]; + OverriderInfo& Overrider = + OverridersMap[std::make_pair(MD, Context.toBits(BaseOffset))]; assert(!Overrider.Method && "Overrider should not exist yet!"); - Overrider.Offset = OverriderOffset; + Overrider.Offset = Context.toBits(OverriderOffset); Overrider.Method = Method.Method; } } @@ -339,10 +340,9 @@ FinalOverriders::ComputeBaseOffsets(BaseSubobject Base, bool IsVirtual, assert(!SubobjectLayoutClassOffsets.count(std::make_pair(RD, SubobjectNumber)) && "Subobject offset already exists!"); - SubobjectOffsets[std::make_pair(RD, SubobjectNumber)] = - Context.toBits(Base.getBaseOffset()); + SubobjectOffsets[std::make_pair(RD, SubobjectNumber)] = Base.getBaseOffset(); SubobjectLayoutClassOffsets[std::make_pair(RD, SubobjectNumber)] = - OffsetInLayoutClass; + Context.toCharUnitsFromBits(OffsetInLayoutClass); // Traverse our bases. for (CXXRecordDecl::base_class_const_iterator I = RD->bases_begin(), |