------- Comment #20 from pcarlini at suse dot de 2005-11-22 18:00 ------- An observation: while I don't know all the details of current GCC alias analysis, I'm fairly optimistic that this specific issue with basic_string is not serious. The reason is that _S_empty_rep_storage, of which we are taking the address, actually **never** changes after static zero inizialization. Therefore, all the type based optimizations reasoning that a given pointer will not modify _S_empty_rep_storage simply because the type is different, tuen out to be always trivially correct. If we want to be additionally safe we can slighlty change _M_mutate to never write into it (currently, in some corner cases, it will write zeros into it)
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24975