[PATCH] [ms-cxxabi] Implement member data pointers for non-dynamic classes

Reid Kleckner rnk at google.com
Wed Mar 20 15:12:28 PDT 2013


Hi rjmccall,

For non-dynamic classes (no virtual bases), member data pointers are
simple offsets from the base of the record.  Dynamic classes use an
aggregate for member data pointers and are therefore currently
unsupported.

Unlike Itanium, the ms ABI uses 0 to represent null for polymorphic
classes.  Non-polymorphic classes use -1 like Itanium, since 0 is a
valid field offset.

http://llvm-reviews.chandlerc.com/D558

Files:
  lib/CodeGen/CGCXXABI.cpp
  lib/CodeGen/CGCXXABI.h
  lib/CodeGen/ItaniumCXXABI.cpp
  lib/CodeGen/MicrosoftCXXABI.cpp
  test/CodeGenCXX/microsoft-abi-member-pointers.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D558.1.patch
Type: text/x-patch
Size: 10885 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130320/fb09a1cc/attachment.bin>


More information about the cfe-commits mailing list