]> granicus.if.org Git - clang/commit
MS ABI: Don't ICE for pointers to pointers to members of incomplete classes
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 18 Sep 2014 22:05:54 +0000 (22:05 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 18 Sep 2014 22:05:54 +0000 (22:05 +0000)
commit0e22ee0954f2b8f63bdbe36ba70e3dd1319e5503
treeb37d8c314dd49a0a9a0b496da7c3851ce0a4c1c6
parent7877b51ba41955a65b49157d7ee9d7e1c47f7eb9
MS ABI: Don't ICE for pointers to pointers to members of incomplete classes

CodeGen would try to come up with an LLVM IR type for a pointer to
member type on the way to forming an LLVM IR type for a pointer to
pointer to member type.

However, if the pointer to member representation has not been locked in yet,
we would not be able to come up with a pointer to member IR type.

In these cases, make the pointer to member type an incomplete type.
This will make the pointer to pointer to member type a pointer to an
incomplete type.  If the class eventually obtains an inheritance model,
we will make the pointer to member type represent the actual inheritance
model.

Differential Revision: http://reviews.llvm.org/D5373

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218084 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGCXXABI.h
lib/CodeGen/CodeGenFunction.cpp
lib/CodeGen/CodeGenFunction.h
lib/CodeGen/CodeGenTypes.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
test/CodeGenCXX/microsoft-abi-member-pointers.cpp