[PATCH] D61176: [MinGW] Do dllexport inline methods in template instantiation
Martin Storsjö via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 26 12:30:00 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rC359343: [MinGW] Do dllexport inline methods in template instantiation (authored by mstorsjo, committed by ).
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61176/new/
https://reviews.llvm.org/D61176
Files:
lib/Sema/SemaDeclCXX.cpp
test/CodeGenCXX/mingw-template-dllexport.cpp
Index: test/CodeGenCXX/mingw-template-dllexport.cpp
===================================================================
--- test/CodeGenCXX/mingw-template-dllexport.cpp
+++ test/CodeGenCXX/mingw-template-dllexport.cpp
@@ -7,11 +7,9 @@
template <class T>
class c {
- void f();
+ void f() {}
};
-template <class T> void c<T>::f() {}
-
template class __declspec(dllexport) c<int>;
// CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIiE1fEv
Index: lib/Sema/SemaDeclCXX.cpp
===================================================================
--- lib/Sema/SemaDeclCXX.cpp
+++ lib/Sema/SemaDeclCXX.cpp
@@ -5726,9 +5726,12 @@
continue;
if (MD->isInlined()) {
- // MinGW does not import or export inline methods.
+ // MinGW does not import or export inline methods. But do it for
+ // template instantiations.
if (!Context.getTargetInfo().getCXXABI().isMicrosoft() &&
- !Context.getTargetInfo().getTriple().isWindowsItaniumEnvironment())
+ !Context.getTargetInfo().getTriple().isWindowsItaniumEnvironment() &&
+ TSK != TSK_ExplicitInstantiationDeclaration &&
+ TSK != TSK_ExplicitInstantiationDefinition)
continue;
// MSVC versions before 2015 don't export the move assignment operators
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61176.196901.patch
Type: text/x-patch
Size: 1301 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190426/6dac199f/attachment.bin>
More information about the cfe-commits
mailing list