diff options
author | Jan Hubicka <jh@suse.cz> | 2002-03-27 23:23:12 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-03-27 22:23:12 +0000 |
commit | d337d653ca302134c4e668cdcce30e7518163957 (patch) | |
tree | 2ce9927ec32f655ae24af08763c7f453ed92da21 /gcc/builtins.c | |
parent | 218aa620c4a1f7c2fadd6605d9ed5caee604079b (diff) | |
download | gcc-d337d653ca302134c4e668cdcce30e7518163957.zip gcc-d337d653ca302134c4e668cdcce30e7518163957.tar.gz gcc-d337d653ca302134c4e668cdcce30e7518163957.tar.bz2 |
i960.md (ret): Set PC.
* i960.md (ret): Set PC.
(nonlocal_goto): Fix expander.
* builtins.c (epxand_builin_longjmp): Check that we've emitted
some jump or call.
From-SVN: r51478
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 806dd0d..eb117ce 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -639,7 +639,7 @@ void expand_builtin_longjmp (buf_addr, value) rtx buf_addr, value; { - rtx fp, lab, stack, insn; + rtx fp, lab, stack, insn, last; enum machine_mode sa_mode = STACK_SAVEAREA_MODE (SAVE_NONLOCAL); if (setjmp_alias_set == -1) @@ -662,6 +662,7 @@ expand_builtin_longjmp (buf_addr, value) current_function_calls_longjmp = 1; + last = get_last_insn (); #ifdef HAVE_builtin_longjmp if (HAVE_builtin_longjmp) emit_insn (gen_builtin_longjmp (buf_addr)); @@ -707,6 +708,8 @@ expand_builtin_longjmp (buf_addr, value) internal exception handling use only. */ for (insn = get_last_insn (); insn; insn = PREV_INSN (insn)) { + if (insn == last) + abort (); if (GET_CODE (insn) == JUMP_INSN) { REG_NOTES (insn) = alloc_EXPR_LIST (REG_NON_LOCAL_GOTO, const0_rtx, |