From 99599ef373f0b67e90ccbb9b0e8fb3959988ecca Mon Sep 17 00:00:00 2001 From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue, 6 Apr 1999 22:10:24 +0000 Subject: [PATCH] * expr.c (expand_builtin_setjmp): Put setjmp return label on nonlocal_goto_handler_labels for flow. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26225 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/expr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/expr.c b/gcc/expr.c index d2ebdc31b73a..8d5fa10b4cb5 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -8442,7 +8442,7 @@ expand_builtin_setjmp (buf_addr, target, first_label, next_label) (gen_rtx_MEM (Pmode, plus_constant (buf_addr, GET_MODE_SIZE (Pmode)))), - gen_rtx_LABEL_REF (Pmode, lab1)); + force_reg (Pmode, gen_rtx_LABEL_REF (Pmode, lab1))); stack_save = gen_rtx_MEM (sa_mode, plus_constant (buf_addr, @@ -8461,8 +8461,13 @@ expand_builtin_setjmp (buf_addr, target, first_label, next_label) emit_barrier (); emit_label (lab1); - /* Tell flow about the strange goings on. */ + /* Tell flow about the strange goings on. Putting `lab1' on + `nonlocal_goto_handler_labels' to indicates that function + calls may traverse the arc back to this label. */ + current_function_has_nonlocal_label = 1; + nonlocal_goto_handler_labels = + gen_rtx_EXPR_LIST (VOIDmode, lab1, nonlocal_goto_handler_labels); /* Clobber the FP when we get here, so we have to make sure it's marked as used by this function. */ -- GitLab