[committed] libstdc++: Fix wstring conversions in filesystem::path [PR95048]
Jonathan Wakely
jwakely@redhat.com
Fri Nov 11 22:32:22 GMT 2022
On Fri, 11 Nov 2022 at 17:44, Jonathan Wakely via Libstdc++
<libstdc++@gcc.gnu.org> wrote:
>
> Tested x86_64-linux and x86_64-w64-ming32 (via Wine).
Sigh, I did test on Wine, but then what I pushed didn't include the
fix that was found thanks to that testing.
This is needed to prevent runtime errors on Windows when constructing
paths. Pushed to trunk.
-------------- next part --------------
commit 8214ec0cf33482f60139ae18a40567317e63c1ff
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Fri Nov 11 22:25:14 2022
libstdc++: Fix <experimental/filesystem> for Windows [PR95048]
I meant to include this change in r13-3909-gb331bf303bdc1e but I forgot
to sync it from the machine where I did the mingw testing to the one
where I pushed the commit.
libstdc++-v3/ChangeLog:
PR libstdc++/95048
* include/experimental/bits/fs_path.h (path::_Cvt::_S_wconvert):
Construct codecvt directly instead of getting it from the
locale.
diff --git a/libstdc++-v3/include/experimental/bits/fs_path.h b/libstdc++-v3/include/experimental/bits/fs_path.h
index 6e2f47f5e63..a493e17a37e 100644
--- a/libstdc++-v3/include/experimental/bits/fs_path.h
+++ b/libstdc++-v3/include/experimental/bits/fs_path.h
@@ -792,8 +792,7 @@ namespace __detail
static string_type
_S_wconvert(const char* __f, const char* __l, const char*)
{
- using _Cvt = std::codecvt_utf8_utf16<wchar_t>;
- const auto& __cvt = std::use_facet<_Cvt>(std::locale{});
+ std::codecvt_utf8_utf16<wchar_t> __cvt;
std::wstring __wstr;
if (__str_codecvt_in_all(__f, __l, __wstr, __cvt))
return __wstr;
More information about the Libstdc++
mailing list