http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51466
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-08 14:45:44 UTC --- Created attachment 26021 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26021 gcc47-pr51466.patch Possible fix. Though, I wonder if this isn't unnecessarily pessimistic. The reason why we ICE is because when clearing TREE_THIS_VOLATILE on the new_rhs, we don't also clear TREE_SIDE_EFFECTS. So another alternative would be perhaps to also copy TREE_SIDE_EFFECTS in all the 4 places where we currently copy TREE_THIS_VOLATILE. That fixes this too.