mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
On the mingw32 target, std::system_category().message(int) uses FormatMessage api to format error messages. When the error message contains insert sequences, it is unsafe not to use the FORMAT_MESSAGE_OGNORE_INSERTS flag, as seen at: https://devblogs.microsoft.com/oldnewthing/20071128-00/?p=24353 The output of FormatMessage ends with "\r\n" and includes a Full stop character used by the current thread's UI language. Now, we will remove "\r\n" and any trailing '.' from the output in any language environment. In the testsuite for std::system_category().message(int), we first switch the thread UI language to en-US to meet expectations in any language environment. libstdc++-v3/ChangeLog: * src/c++11/system_error.cc (system_error_category) [_WIN32]: Use FormatMessageA function instead of FormatMessage macro. * testsuite/19_diagnostics/error_category/system_category.cc: Fix typo in __MINGW32__ macro name. Adjust behavior on the mingw32 target.