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 <r...@gcc.gnu.org>: https://gcc.gnu.org/g:5e3f88838994b67580594c4679c839fff7cdeba0 commit r12-4404-g5e3f88838994b67580594c4679c839fff7cdeba0 Author: Jonathan Wakely <jwak...@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.