http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51353
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-12-14 23:28:00 UTC --- I think this should be: *(((volatile void **)__builtin_frame_address(0))+1) = exc; GCC thinks it does not alias thing which is why it is removing it.