[ms-cxxabi] Correctly compute the size of member pointers
authorReid Kleckner <reid@kleckner.net>
Thu, 28 Mar 2013 20:02:56 +0000 (20:02 +0000)
committerReid Kleckner <reid@kleckner.net>
Thu, 28 Mar 2013 20:02:56 +0000 (20:02 +0000)
commit3a52abf553570c400fdc00596c19bb4d317ab660
tree5d49f5b46cf425be26780d822f7aa54a8cf782b3
parent06bb7f7ef65a8aa953c65006df35b998029ee7f3
[ms-cxxabi] Correctly compute the size of member pointers

Summary:
This also relaxes the requirement on Windows that the member pointer
class type be a complete type (http://llvm.org/PR12070).  We still ask
for a complete type to instantiate any templates (MSVC does this), but
if that fails we continue as normal, relying on any inheritance
attributes on the declaration.

Reviewers: rjmccall

CC: triton, timurrrr, cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D568

llvm-svn: 178283
clang/lib/AST/ASTContext.cpp
clang/lib/AST/CXXABI.h
clang/lib/AST/ItaniumCXXABI.cpp
clang/lib/AST/MicrosoftCXXABI.cpp
clang/lib/Sema/SemaType.cpp
clang/test/SemaCXX/member-pointer-ms.cpp