On Fri, 11 Nov 2022 at 17:44, Jonathan Wakely via Libstdc++
<libstd...@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.
commit 8214ec0cf33482f60139ae18a40567317e63c1ff
Author: Jonathan Wakely <jwak...@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;

Reply via email to