On Sat, Apr 20, 2013 at 5:14 AM, Andreas Schwab <sch...@linux-m68k.org> wrote: > 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); > ^
That's an unusually useless error message. There are no local structs in this function. Without digging into the compiler I'm not sure what this means or how to fix it. Ian