diff options
Diffstat (limited to 'lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 24df2edbac..c7a50efcd8 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -808,7 +808,7 @@ CollectCXXBases(const CXXRecordDecl *RD, llvm::DIFile Unit, for (CXXRecordDecl::base_class_const_iterator BI = RD->bases_begin(), BE = RD->bases_end(); BI != BE; ++BI) { unsigned BFlags = 0; - CharUnits BaseOffset; + uint64_t BaseOffset; const CXXRecordDecl *Base = cast<CXXRecordDecl>(BI->getType()->getAs<RecordType>()->getDecl()); @@ -816,11 +816,10 @@ CollectCXXBases(const CXXRecordDecl *RD, llvm::DIFile Unit, if (BI->isVirtual()) { // virtual base offset offset is -ve. The code generator emits dwarf // expression where it expects +ve number. - BaseOffset = CharUnits::Zero() - - CGM.getVTables().getVirtualBaseOffsetOffset(RD, Base); + BaseOffset = 0 - CGM.getVTables().getVirtualBaseOffsetOffset(RD, Base); BFlags = llvm::DIDescriptor::FlagVirtual; } else - BaseOffset = RL.getBaseClassOffset(Base); + BaseOffset = RL.getBaseClassOffsetInBits(Base); AccessSpecifier Access = BI->getAccessSpecifier(); if (Access == clang::AS_private) @@ -831,7 +830,7 @@ CollectCXXBases(const CXXRecordDecl *RD, llvm::DIFile Unit, llvm::DIType DTy = DBuilder.createInheritance(RecordTy, getOrCreateType(BI->getType(), Unit), - BaseOffset.getQuantity(), BFlags); + BaseOffset, BFlags); EltTys.push_back(DTy); } } |