[PATCH] MS ABI: Implement #pragma vtordisp() and clang-cl /vdN

Reid Kleckner rnk at google.com
Tue Feb 11 15:05:51 PST 2014


Hi majnemer, rsmith,

These features are new in VS 2013 and are necessary in order to layout
std::ostream correctly.  Currently we have an ABI incompatibility when
self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper
in gtest.

This change adds another implicit attribute, MSVtorDispAttr, because
implicit attributes are currently the best way to make sure the
information stays on class templates through instantiation.

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

Files:
  include/clang/AST/DeclCXX.h
  include/clang/Basic/Attr.td
  include/clang/Basic/DiagnosticParseKinds.td
  include/clang/Basic/DiagnosticSemaKinds.td
  include/clang/Basic/LangOptions.def
  include/clang/Basic/TokenKinds.def
  include/clang/Driver/CC1Options.td
  include/clang/Driver/CLCompatOptions.td
  include/clang/Parse/Parser.h
  include/clang/Sema/Sema.h
  lib/AST/MicrosoftCXXABI.cpp
  lib/AST/RecordLayoutBuilder.cpp
  lib/Driver/Tools.cpp
  lib/Frontend/CompilerInvocation.cpp
  lib/Parse/ParsePragma.cpp
  lib/Parse/ParsePragma.h
  lib/Parse/Parser.cpp
  lib/Sema/Sema.cpp
  lib/Sema/SemaAttr.cpp
  lib/Sema/SemaDecl.cpp
  test/Layout/ms-x86-vtordisp.cpp
  test/SemaCXX/pragma-vtordisp.cpp
  test/SemaCXX/vtordisp-mode.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2746.1.patch
Type: text/x-patch
Size: 29263 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140211/45d2c83f/attachment.bin>


More information about the cfe-commits mailing list