diff options
author | Richard Henderson <rth@gcc.gnu.org> | 1999-04-06 15:10:24 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-04-06 15:10:24 -0700 |
commit | 89c846727b4f86ef2592842cd1ac5ef09d82b037 (patch) | |
tree | 62088bcc9e3096bafd2d426a84c647a741b2f77a /gcc/expr.c | |
parent | e8f5c18f1a3990928272cc48901a8808735769f1 (diff) | |
download | gcc-89c846727b4f86ef2592842cd1ac5ef09d82b037.zip gcc-89c846727b4f86ef2592842cd1ac5ef09d82b037.tar.gz gcc-89c846727b4f86ef2592842cd1ac5ef09d82b037.tar.bz2 |
expr.c (expand_builtin_setjmp): Put setjmp return label on nonlocal_goto_handler_labels for flow.
* expr.c (expand_builtin_setjmp): Put setjmp return label on
nonlocal_goto_handler_labels for flow.
From-SVN: r26225
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -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. */ |