Re: [PATCH] Fix PR56982, handle setjmp like non-local labels

2013-04-20 Thread Ian Lance Taylor
On Sat, Apr 20, 2013 at 5:14 AM, Andreas Schwab wrote: > Richard Biener writes: > >> PR tree-optimization/56982 >> * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf >> function. >> * gimplify.c (gimplify_call_expr): Notice special calls. >> (gimplify_modify_ex

Re: [PATCH] Fix PR56982, handle setjmp like non-local labels

2013-04-20 Thread Andreas Schwab
Richard Biener writes: > PR tree-optimization/56982 > * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf > function. > * gimplify.c (gimplify_call_expr): Notice special calls. > (gimplify_modify_expr): Likewise. > * tree-cfg.c (make_abnormal_goto_edges):

[PATCH] Fix PR56982, handle setjmp like non-local labels

2013-04-17 Thread Richard Biener
This fixes PR56982 by properly modeling the control-flow of setjmp. It basically behaves as a non-local goto target so this patch treats it so - it makes it start a basic-block and get abnormal edges from possible sources of non-local gotos. The patch also fixes the bug that longjmp is marked as