diff options
| -rw-r--r-- | libcxx/docs/DesignDocs/VisibilityMacros.rst | 6 | ||||
| -rw-r--r-- | libcxx/include/__config | 5 | ||||
| -rw-r--r-- | libcxx/include/__debug | 2 | 
3 files changed, 12 insertions, 1 deletions
diff --git a/libcxx/docs/DesignDocs/VisibilityMacros.rst b/libcxx/docs/DesignDocs/VisibilityMacros.rst index 7c6f39c44b4..12c1d56b366 100644 --- a/libcxx/docs/DesignDocs/VisibilityMacros.rst +++ b/libcxx/docs/DesignDocs/VisibilityMacros.rst @@ -22,6 +22,12 @@ Visibility Macros    Mark a symbol as being exported by the libc++ library. This attribute must    be applied to the declaration of all functions exported by the libc++ dylib. +**_LIBCPP_EXTERN_VIS** +  Mark a symbol as being exported by the libc++ library. This attribute may +  only be applied to objects defined in the libc++ library. On Windows this +  macro applies `dllimport`/`dllexport` to the symbol. On all other platforms +  this macro has no effect. +  **_LIBCPP_OVERRIDABLE_FUNC_VIS**    Mark a symbol as being exported by the libc++ library, but allow it to be    overridden locally. On non-Windows, this is equivalent to `_LIBCPP_FUNC_VIS`. diff --git a/libcxx/include/__config b/libcxx/include/__config index 118e3bde24d..d7ecdcfc9cd 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -583,6 +583,7 @@ namespace std {  #define _LIBCPP_TYPE_VIS            _LIBCPP_DLL_VIS  #define _LIBCPP_FUNC_VIS            _LIBCPP_DLL_VIS +#define _LIBCPP_EXTERN_VIS          _LIBCPP_DLL_VIS  #define _LIBCPP_EXCEPTION_ABI       _LIBCPP_DLL_VIS  #define _LIBCPP_HIDDEN  #define _LIBCPP_TEMPLATE_VIS @@ -636,6 +637,10 @@ namespace std {  # define _LIBCPP_FUNC_VIS_ONLY _LIBCPP_FUNC_VIS  #endif +#ifndef _LIBCPP_EXTERN_VIS +# define _LIBCPP_EXTERN_VIS +#endif +  #ifndef _LIBCPP_OVERRIDABLE_FUNC_VIS  # define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_FUNC_VIS  #endif diff --git a/libcxx/include/__debug b/libcxx/include/__debug index d95e339310d..d01bacdf7ed 100644 --- a/libcxx/include/__debug +++ b/libcxx/include/__debug @@ -74,7 +74,7 @@ typedef void(*__libcpp_debug_function_type)(__libcpp_debug_info const&);  /// __libcpp_debug_function - The handler function called when a _LIBCPP_ASSERT  ///    fails. -extern __libcpp_debug_function_type __libcpp_debug_function; +extern _LIBCPP_EXTERN_VIS __libcpp_debug_function_type __libcpp_debug_function;  /// __libcpp_abort_debug_function - A debug handler that aborts when called.  _LIBCPP_NORETURN _LIBCPP_FUNC_VIS  | 

