aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-03-27 23:23:12 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2002-03-27 22:23:12 +0000
commitd337d653ca302134c4e668cdcce30e7518163957 (patch)
tree2ce9927ec32f655ae24af08763c7f453ed92da21 /gcc/builtins.c
parent218aa620c4a1f7c2fadd6605d9ed5caee604079b (diff)
downloadgcc-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.c5
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,