summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-10-31 02:07:23 +0000
committerEric Fiselier <eric@efcs.ca>2016-10-31 02:07:23 +0000
commiteb6b13f5782f986b56da17156f0e9de66e78f2c2 (patch)
tree93af2397343252ae3401e30fc713ff60cd167a7e /docs
parentad1a12c31216780fac34e5b267fa9b885d77d9f1 (diff)
Fix _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY to always have default visibility.
This prevent the symbols from being both externally available and hidden, which causes them to be linked incorrectly. This is only a problem when the address of the function is explicitly taken since it will always be inlined otherwise. This patch fixes the issues that caused r285456 to be reverted, and can now be reapplied. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285531 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/DesignDocs/VisibilityMacros.rst11
1 files changed, 5 insertions, 6 deletions
diff --git a/docs/DesignDocs/VisibilityMacros.rst b/docs/DesignDocs/VisibilityMacros.rst
index 67886e392..861cc04ac 100644
--- a/docs/DesignDocs/VisibilityMacros.rst
+++ b/docs/DesignDocs/VisibilityMacros.rst
@@ -92,14 +92,13 @@ Visibility Macros
On all other platforms, this macro has an empty definition.
**_LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY**
- Mark a member function of a class template as hidden and inline except when
- building the libc++ library where it marks the symbol as being exported by
- the library.
+ Mark a member function of a class template as visible and always inline. This
+ macro should only be applied to member functions of class templates that are
+ externally instantiated. It is important that these symbols are not marked
+ as hidden as that will prevent the dylib definition from being found.
This macro is used to maintain ABI compatibility for symbols that have been
- historically exported by the libc++ library but are now marked inline. It
- should only be applied to member functions of class templates that are
- externally instantiated.
+ historically exported by the libc++ library but are now marked inline.
**_LIBCPP_EXCEPTION_ABI**
Mark the member functions, typeinfo, and vtable of the type as being exported