This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Richard Biener <rguenther@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, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]