summaryrefslogtreecommitdiffstats
path: root/include/system_error
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2017-01-02 22:17:51 +0000
committerEric Fiselier <eric@efcs.ca>2017-01-02 22:17:51 +0000
commit4b07f988161d67aae5d81b3c4cc98c4844192251 (patch)
treeeca5497d9bc00a122181b948fcad094520d78792 /include/system_error
parentea38cde827cdb83134adb7eade860a9b77a486b6 (diff)
downloadexternal_libcxx-4b07f988161d67aae5d81b3c4cc98c4844192251.tar.gz
external_libcxx-4b07f988161d67aae5d81b3c4cc98c4844192251.tar.bz2
external_libcxx-4b07f988161d67aae5d81b3c4cc98c4844192251.zip
Introduce _LIBCPP_DEPRECATED_ABI_EXTERNAL_ERROR_CATEGORY_CONSTRUCTOR ABI option.
Currently libc++ compiles a special version of error_category() into the dylib. This definition is no longer needed, and doesn't work on Windows due to dllimport/dllexport semantics. For those reasons this patch introduces an option to disable/enable this definition. By default the definition is provided in ABI v1 except on windows. This patch also addresses D28210. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290840 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/system_error')
-rw-r--r--include/system_error3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/system_error b/include/system_error
index c7e73d4ab..58040639d 100644
--- a/include/system_error
+++ b/include/system_error
@@ -384,7 +384,8 @@ class _LIBCPP_TYPE_VIS error_category
public:
virtual ~error_category() _NOEXCEPT;
-#ifdef _LIBCPP_BUILDING_SYSTEM_ERROR
+#if defined(_LIBCPP_BUILDING_SYSTEM_ERROR) && \
+ defined(_LIBCPP_DEPRECATED_ABI_EXTERNAL_ERROR_CATEGORY_CONSTRUCTOR)
error_category() _NOEXCEPT;
#else
_LIBCPP_ALWAYS_INLINE