From b3e5654923e074b7f5ebb1e7c54519e2911a06f7 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Thu, 7 Aug 2014 22:56:13 +0000 Subject: MS ABI: Handle member function pointers returning a member data pointer MSVC doesn't decide what the inheritance model for a returned member pointer *until* a call expression returns it. This fixes PR20017. llvm-svn: 215164 --- clang/lib/CodeGen/CGCXXABI.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/CodeGen/CGCXXABI.h') diff --git a/clang/lib/CodeGen/CGCXXABI.h b/clang/lib/CodeGen/CGCXXABI.h index 91e49707bae..40418b60c1b 100644 --- a/clang/lib/CodeGen/CGCXXABI.h +++ b/clang/lib/CodeGen/CGCXXABI.h @@ -156,6 +156,11 @@ public: /// (in the C++ sense) with an LLVM zeroinitializer. virtual bool isZeroInitializable(const MemberPointerType *MPT); + /// Return whether or not a member pointers type is convertible to an IR type. + virtual bool isMemberPointerConvertible(const MemberPointerType *MPT) const { + return true; + } + /// Create a null member pointer of the given type. virtual llvm::Constant *EmitNullMemberPointer(const MemberPointerType *MPT); -- cgit v1.2.3