summaryrefslogtreecommitdiffstats
path: root/libcxx/docs/DesignDocs
diff options
context:
space:
mode:
authorShoaib Meenai <smeenai@fb.com>2017-07-13 21:35:52 +0000
committerShoaib Meenai <smeenai@fb.com>2017-07-13 21:35:52 +0000
commit5b67cd3567c9d4088abc89a504567fb87064ec65 (patch)
tree1750e6c4d80c614c1943e1491930053ae03bdbc0 /libcxx/docs/DesignDocs
parentc44edbcc940a90a34a310bb16ac37191feae8eb8 (diff)
downloadbcm5719-llvm-5b67cd3567c9d4088abc89a504567fb87064ec65.tar.gz
bcm5719-llvm-5b67cd3567c9d4088abc89a504567fb87064ec65.zip
[libc++] Mark string operator+ _LIBCPP_FUNC_VIS
It has an extern template instantiation declaration in the headers and a corresponding instantiation definition in the library, so we must mark it with _LIBCPP_FUNC_VIS to make it available outside the library. This doesn't cause any ABI changes as-is since we don't build libc++ with hidden visibility (so the function is exported anyway). It's needed for building libc++ with hidden visibility, however. Clarify the Windows behavior for extern function templates while I'm here, since this exercises that behavior. llvm-svn: 307966
Diffstat (limited to 'libcxx/docs/DesignDocs')
-rw-r--r--libcxx/docs/DesignDocs/VisibilityMacros.rst3
1 files changed, 2 insertions, 1 deletions
diff --git a/libcxx/docs/DesignDocs/VisibilityMacros.rst b/libcxx/docs/DesignDocs/VisibilityMacros.rst
index 20665cd8021..d02d2dfee12 100644
--- a/libcxx/docs/DesignDocs/VisibilityMacros.rst
+++ b/libcxx/docs/DesignDocs/VisibilityMacros.rst
@@ -98,7 +98,8 @@ Visibility Macros
explicit instantiations themselves are marked as exported. Note that this
applies *only* to extern *class* templates. Extern *function* templates obey
regular import/export semantics, and applying `dllexport` directly to the
- extern template declaration is the correct thing to do for them.
+ extern template declaration (i.e. using `_LIBCPP_FUNC_VIS`) is the correct
+ thing to do for them.
**_LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS**
Mark the member functions, typeinfo, and vtable of an explicit instantiation
OpenPOWER on IntegriCloud