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
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D28210: system_... Saleem Abdulrasool via Phabricator via cfe-commits

Reply via email to