On Sat, 8 Feb 2014, Jakub Jelinek wrote: > Hi! > > install_builtin calls build_fn_decl, which sets TREE_NOTHROW by default. > In most cases I think that is desirable, but __cilkrts_rethrow apparently > conditionally throws an exception, thus marking it TREE_NOTHROW is very much > undesirable and the fact that the testcase happened to work (except for i?86 > recently) must have been by pure accident (that the call was between two > instructions belonging to the right EH region?). > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
Ok. Thanks, Richard. > 2014-02-08 Jakub Jelinek <ja...@redhat.com> > > * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW > flag on __cilkrts_rethrow builtin. > > --- gcc/cilk-common.c.jj 2014-02-06 23:06:47.000000000 +0100 > +++ gcc/cilk-common.c 2014-02-07 11:11:15.253128977 +0100 > @@ -285,6 +285,7 @@ cilk_init_builtins (void) > /* __cilkrts_rethrow (struct stack_frame *); */ > cilk_rethrow_fndecl = install_builtin ("__cilkrts_rethrow", fptr_fun, > BUILT_IN_CILK_RETHROW, false); > + TREE_NOTHROW (cilk_rethrow_fndecl) = 0; > > /* __cilkrts_save_fp_ctrl_state (__cilkrts_stack_frame *); */ > cilk_save_fp_fndecl = install_builtin ("__cilkrts_save_fp_ctrl_state", > > Jakub >