[Bug libstdc++/102743] [12 Regression] build failure for i686-w64-mingw32 target because of patch yesterday

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Oct 14 14:12:54 GMT 2021


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

--- Comment #1 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:5e3f88838994b67580594c4679c839fff7cdeba0

commit r12-4404-g5e3f88838994b67580594c4679c839fff7cdeba0
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Oct 14 13:20:57 2021 +0100

    libstdc++: Fix brainwrong in path::_S_convert(T) [PR102743]

    This function was supposed to check whether the parameter's value type
    is the same as path::value_type, and therefore needs no conversion.
    Instead it checks whether the parameter is the same as its own value
    type, which is never true. This means we incorrectly return a string
    view for the case where T is path::string_type, instead of just
    returning the string itself. The only place that happens is
    path::_S_convert_loc for Windows, where we call _S_convert with a
    std::wstring rvalue.

    This fixes the condition in _S_convert(T).

    libstdc++-v3/ChangeLog:

            PR libstdc++/102743
            * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
            for returning the same string unchanged.


More information about the Gcc-bugs mailing list