compnerd created this revision.
compnerd added reviewers: EricWF, mclow.lists, majnemer.
compnerd added subscribers: smeenai, cfe-commits.
compnerd set the repository for this revision to rL LLVM.
Because the class is marked as `dllexport` and instantiated in
`algorithm.cpp` and is strongly defined in `system_error.cpp`, we end up
with multiple definitions. By keeping the definition as an inline
definition, the `dllexport` will instantiate it. Being inlined, they
will be marked as COMDAT(SELECT_ANY) and will still be exported from the
dll.
Repository:
rL LLVM
https://reviews.llvm.org/D28210
Files:
src/system_error.cpp
Index: src/system_error.cpp
===================================================================
--- src/system_error.cpp
+++ src/system_error.cpp
@@ -9,7 +9,9 @@
#include "__config"
+#if !defined(_WIN32)
#define _LIBCPP_BUILDING_SYSTEM_ERROR
+#endif
#include "system_error"
#include "include/config_elast.h"
@@ -29,9 +31,11 @@
// class error_category
+#if !defined(_WIN32)
error_category::error_category() _NOEXCEPT
{
}
+#endif
error_category::~error_category() _NOEXCEPT
{
Index: src/system_error.cpp
===================================================================
--- src/system_error.cpp
+++ src/system_error.cpp
@@ -9,7 +9,9 @@
#include "__config"
+#if !defined(_WIN32)
#define _LIBCPP_BUILDING_SYSTEM_ERROR
+#endif
#include "system_error"
#include "include/config_elast.h"
@@ -29,9 +31,11 @@
// class error_category
+#if !defined(_WIN32)
error_category::error_category() _NOEXCEPT
{
}
+#endif
error_category::~error_category() _NOEXCEPT
{
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits