[Bug libstdc++/95392] [11 Regression] Build failure on MinGW

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jun 1 23:14:22 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95392

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:cd3f067b82a1331f5fb695879ba5c3d9bb2cca3a

commit r11-777-gcd3f067b82a1331f5fb695879ba5c3d9bb2cca3a
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 2 00:07:05 2020 +0100

    libstdc++: Fix filesystem::u8path for mingw targets (PR 95392)

    When I refactored filesystem::path string conversions in
    r11-587-584d52b088f9fcf78704b504c3f1f07e17c1cded I failed to update the
    mingw-specific code in filesystem::u8path, causing a bootstrap failure.

    This fixes it, and further refactors the mingw-specific code along the
    same lines as the previous commit. All conversions from UTF-8 strings to
    wide strings now use the same helper function, __wstr_from_utf8.

            PR libstdc++/95392
            * include/bits/fs_path.h (path::_S_to_string): Move to
            namespace-scope and rename to ...
            (__detail::__string_from_range): ... this.
            [WINDOWS] (__detail::__wstr_from_utf8): New function template to
            convert a char sequence containing UTF-8 to wstring.
            (path::_S_convert(Iter, Iter)): Adjust call to _S_to_string.
            (path::_S_convert_loc(Iter, Iter, const locale&)): Likewise.
            (u8path(InputIterator, InputIterator)) [WINDOWS]: Use
            __string_from_range to obtain a contiguous range and
            __wstr_from_utf8 to obtain a wide string.
            (u8path(const Source&)) [WINDOWS]: Use __effective_range to
            obtain a contiguous range and __wstr_from_utf8 to obtain a wide
            string.
            (path::_S_convert(const _EcharT*, const _EcharT)) [WINDOWS]:
            Use __wstr_from_utf8.


More information about the Gcc-bugs mailing list