]> granicus.if.org Git - clang/commit
For MS ABI, emit dllexport friend functions defined inline in class
authorStephan Bergmann <sbergman@redhat.com>
Wed, 30 Mar 2016 06:27:31 +0000 (06:27 +0000)
committerStephan Bergmann <sbergman@redhat.com>
Wed, 30 Mar 2016 06:27:31 +0000 (06:27 +0000)
commit8d88a9262fa0065d980f1c25893d6a4bae6be665
tree35c2c8fde3e994d88802f5cba851a9e18e68a724
parent7c065afc52d232e39013584be0bd972497b1c65e
For MS ABI, emit dllexport friend functions defined inline in class

...as that is apparently what MSVC does.  This is an updated version of r263738,
which had to be reverted in r263740 due to test failures.  The original version
had erroneously emitted functions that are defined in class templates, too (see
the updated "Handle friend functions" code in EmitDeferredDecls,
lib/CodeGen/ModuleBuilder.cpp).  (The updated tests needed to be split out into
their own dllexport-ms-friend.cpp because of the CHECK-NOTs which would have
interfered with subsequent CHECK-DAGs in dllexport.cpp.)

Differential Revision: http://reviews.llvm.org/D18430

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264841 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/ASTConsumer.h
include/clang/Frontend/MultiplexConsumer.h
include/clang/Sema/Sema.h
lib/CodeGen/CodeGenAction.cpp
lib/CodeGen/ModuleBuilder.cpp
lib/Frontend/MultiplexConsumer.cpp
lib/Parse/ParseCXXInlineMethods.cpp
lib/Sema/SemaDecl.cpp
test/CodeGenCXX/dllexport-ms-friend.cpp [new file with mode: 0644]