[ms-cxxabi] Implement member pointer emission and dereferencing
authorReid Kleckner <reid@kleckner.net>
Thu, 11 Apr 2013 18:13:19 +0000 (18:13 +0000)
committerReid Kleckner <reid@kleckner.net>
Thu, 11 Apr 2013 18:13:19 +0000 (18:13 +0000)
commit2341ae3856e1741802332a150d7c867cff99d62a
tree08e7c4d3cbc39755b52c3929237b1ca9ac479f95
parent0ff3bf96f242d89fb84426e94e7ebad1cd760120
[ms-cxxabi] Implement member pointer emission and dereferencing

Summary:
Handles all inheritance models for both data and function member
pointers.

Also implements isZeroInitializable() and refactors some of the null
member pointer code.

MSVC supports converting member pointers through virtual bases, which
clang does not (yet?) support.  Implementing that extension is covered
by http://llvm.org/15713

Reviewers: rjmccall

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D613

llvm-svn: 179305
clang/include/clang/AST/DeclCXX.h
clang/include/clang/AST/Type.h
clang/lib/AST/MicrosoftCXXABI.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp