From 36d4d1541c49843e062a5c64d2fd65b9e9b98ac7 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sat, 15 May 2010 00:00:37 +0000 Subject: C++/ABI/x86_64: Member pointers should be classified as INTEGER. llvm-svn: 103843 --- clang/lib/CodeGen/TargetInfo.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/CodeGen') diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index 176a7432b0c..4a0a298c3be 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -853,6 +853,11 @@ void X86_64ABIInfo::classify(QualType Ty, classify(ET->getDecl()->getIntegerType(), Context, OffsetBase, Lo, Hi); } else if (Ty->hasPointerRepresentation()) { Current = Integer; + } else if (Ty->isMemberPointerType()) { + if (Ty->isMemberFunctionPointerType()) + Lo = Hi = Integer; + else + Current = Integer; } else if (const VectorType *VT = Ty->getAs()) { uint64_t Size = Context.getTypeSize(VT); if (Size == 32) { -- cgit v1.2.3