aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/ItaniumCXXABI.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/CodeGen/ItaniumCXXABI.cpp b/lib/CodeGen/ItaniumCXXABI.cpp
index 839e0476d4..99575dfc8f 100644
--- a/lib/CodeGen/ItaniumCXXABI.cpp
+++ b/lib/CodeGen/ItaniumCXXABI.cpp
@@ -498,11 +498,9 @@ llvm::Constant *ItaniumCXXABI::EmitMemberPointer(const FieldDecl *FD) {
// A pointer to data member is an offset from the base address of
// the class object containing it, represented as a ptrdiff_t
- QualType ClassType = getContext().getTypeDeclType(FD->getParent());
- const llvm::StructType *ClassLTy =
- cast<llvm::StructType>(CGM.getTypes().ConvertType(ClassType));
-
const CGRecordLayout &RL = CGM.getTypes().getCGRecordLayout(FD->getParent());
+ const llvm::StructType *ClassLTy = RL.getLLVMType();
+
unsigned FieldNo = RL.getLLVMFieldNo(FD);
uint64_t Offset =
CGM.getTargetData().getStructLayout(ClassLTy)->getElementOffset(FieldNo);