[PATCH] D61278: Simplify exclusion of nested classes from extern template instantiation, NFC
Reid Kleckner via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 29 14:30:01 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL359507: Simplify exclusion of nested classes from extern template instantiation, NFC (authored by rnk, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D61278?vs=197182&id=197191#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61278/new/
https://reviews.llvm.org/D61278
Files:
cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
Index: cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
===================================================================
--- cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
+++ cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
@@ -2684,15 +2684,14 @@
== TSK_ExplicitSpecialization)
continue;
- if ((Context.getTargetInfo().getCXXABI().isMicrosoft() ||
- Context.getTargetInfo().getTriple().isWindowsItaniumEnvironment() ||
- Context.getTargetInfo().getTriple().isWindowsGNUEnvironment()) &&
+ if (Context.getTargetInfo().getTriple().isOSWindows() &&
TSK == TSK_ExplicitInstantiationDeclaration) {
- // In MSVC and Windows Itanium mode, explicit instantiation decl of the
- // outer class doesn't affect the inner class.
- // In GNU mode, inner classes aren't dllexported. Don't let the
- // instantiation cover the inner class, to avoid undefined references
- // to inner classes that weren't exported.
+ // On Windows, explicit instantiation decl of the outer class doesn't
+ // affect the inner class. Typically extern template declarations are
+ // used in combination with dll import/export annotations, but those
+ // are not propagated from the outer class templates to inner classes.
+ // Therefore, do not instantiate inner classes on this platform, so
+ // that users don't end up with undefined symbols during linking.
continue;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61278.197191.patch
Type: text/x-patch
Size: 1534 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190429/c32f416f/attachment.bin>
More information about the cfe-commits
mailing list