------- Comment #29 from ebotcazou at gcc dot gnu dot org 2009-04-16 07:57 ------- Richard,
the removal of /* If the RHS of the MODIFY_EXPR may throw or make a nonlocal goto and the LHS is a user variable, then we need to introduce a formal temporary. This way the optimizers can determine that the user variable is only modified if evaluation of the RHS does not throw. */ from is_gimple_reg_or_call_rhs breaks __builtin_setjmp / __builtin_longjmp (and probably nonlocal gotos). -- ebotcazou at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625