aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGDebugInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp9
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);
}
}