http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54392
--- Comment #20 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-31 10:05:35 UTC --- In fact, ext/vstring seems *already* Ok. The reason being that before checking whether we can work in place we check whether a reallocation is needed, thus in all the cases at issue here _M_replace immediately calls _M_mutate, which does the right thing. I'll double check anyway. Also, I'll see again-again whether I can figure out something decently neat for current basic_string.