summaryrefslogtreecommitdiffstats
path: root/libcxx/docs/DesignDocs
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/docs/DesignDocs')
-rw-r--r--libcxx/docs/DesignDocs/VisibilityMacros.rst10
1 files changed, 10 insertions, 0 deletions
diff --git a/libcxx/docs/DesignDocs/VisibilityMacros.rst b/libcxx/docs/DesignDocs/VisibilityMacros.rst
index 6e2294d3965..db983154e7d 100644
--- a/libcxx/docs/DesignDocs/VisibilityMacros.rst
+++ b/libcxx/docs/DesignDocs/VisibilityMacros.rst
@@ -71,6 +71,16 @@ Visibility Macros
However since `_LIBCPP_TYPE_VIS_ONLY` is the same as `_LIBCPP_TYPE_VIS` the
visibility is already correct. The macro has an empty definition with GCC.
+**_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.
+
+ 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.
+
**_LIBCPP_EXCEPTION_ABI**
Mark the member functions, typeinfo, and vtable of the type as being exported
by the libc++ library. This macro must be applied to all *exception types*.
OpenPOWER on IntegriCloud