Richard Biener <rguent...@suse.de> 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): Handle setjmp-like > abnormal control flow receivers. > (call_can_make_abnormal_goto): Handle cfun->calls_setjmp > in the same way as cfun->has_nonlocal_labels. > (gimple_purge_dead_abnormal_call_edges): Likewise. > (stmt_starts_bb_p): Make setjmp-like abnormal control flow > receivers start a basic-block.
This breaks libgo. ../../../gcc/libgo/runtime/proc.c: In function ‘runtime_mcall.constprop.7’: ../../../gcc/libgo/runtime/proc.c:419:13: error: ‘({anonymous})’ may be used uninitialized in this function [-Werror=maybe-uninitialized] getcontext(&gp->context); ^ Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."