http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54392
--- Comment #6 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-08-29 14:47:28 UTC --- Nope, I checked and _M_disjunct seems already Ok. The issue is actually with the logic in assign when _M_disjunct is false: it assumes we are simply overwriting things and no memory allocation needed.