https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94293
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The trunk (GCC 15) can do it for C++20 but not for C++17 or earlier because std::__cxx11::basic_string<char>::_M_create is not inlined. And GCC thinks: _20 = std::__cxx11::basic_string<char>::_M_create (&p.second, &__dnew, 0); can modify p.first too. I wonder if there is a better way of doing _M_create here? (without changing the ABI).