Author: compnerd Date: Mon Jan 2 20:00:33 2017 New Revision: 290851 URL: http://llvm.org/viewvc/llvm-project?rev=290851&view=rev Log: system_error: provide a thread safe stringification for Windows
Provide a strerror_r replacement for Windows. This is needed to build libc++ for Windows with threading. Modified: libcxx/trunk/src/system_error.cpp Modified: libcxx/trunk/src/system_error.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/system_error.cpp?rev=290851&r1=290850&r2=290851&view=diff ============================================================================== --- libcxx/trunk/src/system_error.cpp (original) +++ libcxx/trunk/src/system_error.cpp Mon Jan 2 20:00:33 2017 @@ -65,8 +65,16 @@ constexpr size_t strerror_buff_size = 10 string do_strerror_r(int ev); -#if defined(__linux__) && !defined(_LIBCPP_HAS_MUSL_LIBC) \ - && (!defined(__ANDROID__) || __ANDROID_API__ >= 23) +#if defined(_WIN32) +string do_strerror_r(int ev) { + char buffer[strerror_buff_size]; + if (::strerror_s(buffer, strerror_buff_size, ev) == 0) + return string(buffer); + std::snprintf(buffer, strerror_buff_size, "unknown error %d", ev); + return string(buffer); +} +#elif defined(__linux__) && !defined(_LIBCPP_HAS_MUSL_LIBC) && \ + (!defined(__ANDROID__) || __ANDROID_API__ >= 23) // GNU Extended version string do_strerror_r(int ev) { char buffer[strerror_buff_size]; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits