http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50317
--- Comment #7 from Michael Matz <matz at gcc dot gnu.org> 2011-11-28 13:46:45 UTC --- (In reply to comment #6) > Patch to drop ={v} {CLOBBER} stmts when the lhs lost TREE_ADDRESSABLE bit > during execute_update_addresses_taken. Actually it's not only the loss of TREE_ADDRESSABLE, but more specifically that the symbol is marked for renaming now (i.e. will become a SSA name). There are other decls (not of gimple_reg type) that aren't marked addressed but still aren't renamed (and therefore the clobbers are still useful). I see that your patch does the right thing for this, but just wanted to mention it because it's really the renaming, not the loss of TREE_ADDRESSABLE that makes removing the clobber a good idea. I think your condition is a bit too verbose. marked_for_renaming implies !TREE_ADDRESSABLE, and a clobber statement should always have a gimple_vdef. Then, adding another IL walk just for this? Why does your first patch ICE? Can't that be fixed up somehow?