https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117655
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Mathias Stearn from comment #2) > It looks like a similar optimization would make sense for > operator=(string&&): https://godbolt.org/z/Wo19fjKeK. I think this is missing the fix up, although it still beats what we have on trunk today: _M_data(_M_data() == b._M_local_data() ? _M_local_data() : _M_data());