Home

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

Press ? to show keyboard shortcuts.
Committed
rnkFeb 12 2014, 3:50 PM
Differential Revision
D2746: MS ABI: Implement #pragma vtordisp() and clang-cl /vdN
Parents
rL201273: Fixed the TestLogging test.
Branches
Unknown
Tags
Unknown
Subscribers
None
Projects
None
Description

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

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.

Reviewers: majnemer

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

Changes (25)

HistoryBrowseChangePath
HistoryBrowseModifiedcfe/trunk/include/clang/AST/DeclCXX.h
HistoryBrowseModifiedcfe/trunk/include/clang/Basic/Attr.td
HistoryBrowseModifiedcfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
HistoryBrowseModifiedcfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
HistoryBrowseModifiedcfe/trunk/include/clang/Basic/LangOptions.def
HistoryBrowseModifiedcfe/trunk/include/clang/Basic/TokenKinds.def
HistoryBrowseModifiedcfe/trunk/include/clang/Driver/CC1Options.td
HistoryBrowseModifiedcfe/trunk/include/clang/Driver/CLCompatOptions.td
HistoryBrowseModifiedcfe/trunk/include/clang/Lex/Preprocessor.h
HistoryBrowseModifiedcfe/trunk/include/clang/Parse/Parser.h
HistoryBrowseModifiedcfe/trunk/include/clang/Sema/Sema.h
HistoryBrowseModifiedcfe/trunk/lib/AST/MicrosoftCXXABI.cpp
HistoryBrowseModifiedcfe/trunk/lib/AST/RecordLayoutBuilder.cpp
HistoryBrowseModifiedcfe/trunk/lib/Driver/Tools.cpp
HistoryBrowseModifiedcfe/trunk/lib/Frontend/CompilerInvocation.cpp
HistoryBrowseModifiedcfe/trunk/lib/Lex/Pragma.cpp
HistoryBrowseModifiedcfe/trunk/lib/Lex/Preprocessor.cpp
HistoryBrowseModifiedcfe/trunk/lib/Parse/ParsePragma.cpp
HistoryBrowseModifiedcfe/trunk/lib/Parse/ParsePragma.h
HistoryBrowseModifiedcfe/trunk/lib/Parse/Parser.cpp
HistoryBrowseModifiedcfe/trunk/lib/Sema/Sema.cpp
HistoryBrowseModifiedcfe/trunk/lib/Sema/SemaAttr.cpp
HistoryBrowseModifiedcfe/trunk/test/Layout/ms-x86-vtordisp.cpp
HistoryBrowseAddedcfe/trunk/test/SemaCXX/pragma-vtordisp.cpp
HistoryBrowseAddedcfe/trunk/test/SemaCXX/vtordisp-mode.cpp

rL201274

cfe/trunk/include/clang/AST/DeclCXX.h

Loading...

cfe/trunk/include/clang/Basic/Attr.td

Loading...

cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td

Loading...

cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td

Loading...

cfe/trunk/include/clang/Basic/LangOptions.def

Loading...

cfe/trunk/include/clang/Basic/TokenKinds.def

Loading...

cfe/trunk/include/clang/Driver/CC1Options.td

Loading...

cfe/trunk/include/clang/Driver/CLCompatOptions.td

Loading...

cfe/trunk/include/clang/Lex/Preprocessor.h

Loading...

cfe/trunk/include/clang/Parse/Parser.h

Loading...

cfe/trunk/include/clang/Sema/Sema.h

Loading...

cfe/trunk/lib/AST/MicrosoftCXXABI.cpp

Loading...

cfe/trunk/lib/AST/RecordLayoutBuilder.cpp

Loading...

cfe/trunk/lib/Driver/Tools.cpp

Loading...

cfe/trunk/lib/Frontend/CompilerInvocation.cpp

Loading...

cfe/trunk/lib/Lex/Pragma.cpp

Loading...

cfe/trunk/lib/Lex/Preprocessor.cpp

Loading...

cfe/trunk/lib/Parse/ParsePragma.cpp

Loading...

cfe/trunk/lib/Parse/ParsePragma.h

Loading...

cfe/trunk/lib/Parse/Parser.cpp

Loading...

cfe/trunk/lib/Sema/Sema.cpp

Loading...

cfe/trunk/lib/Sema/SemaAttr.cpp

Loading...

cfe/trunk/test/Layout/ms-x86-vtordisp.cpp

Loading...

cfe/trunk/test/SemaCXX/pragma-vtordisp.cpp

Loading...

cfe/trunk/test/SemaCXX/vtordisp-mode.cpp

Loading...

Add Comment