http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23384
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Clobber list should be flow |escaped set should be flow |sensitive |sensitive --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Note implementing a flow-sensitive ESCAPED set is not really possible within the current framework. Note that all memory operations are not flow-sensitive, so int *global; int kk(void) { int j; j = 1; g (); j += 2; global = &j; } will still cause g() to clobber j as far as points-to analysis is concerned (the write to 'global' is not flow-sensitive). "Trivial" optimization can avoid refering to ESCAPED in the first basic-block as long as nothing could have been possibly escaped yet. But that's a hack.