aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-07-19 07:18:05 +0000
committerRichard Stallman <rms@gnu.org>1992-07-19 07:18:05 +0000
commit705f26cf3154bd42470299c75cf39e72d89fada6 (patch)
tree0d7663fb2c15a0e0516d19902de3f84f0a168615
parent82d003675fbabc58673e5ac9580020e1403d6214 (diff)
downloadgcc-705f26cf3154bd42470299c75cf39e72d89fada6.zip
gcc-705f26cf3154bd42470299c75cf39e72d89fada6.tar.gz
gcc-705f26cf3154bd42470299c75cf39e72d89fada6.tar.bz2
entered into RCS
From-SVN: r1627
-rw-r--r--gcc/jump.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/jump.c b/gcc/jump.c
index 6de958d..9fb7bff 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -2744,6 +2744,9 @@ mark_jump_label (x, insn, cross_jump)
register rtx next;
if (GET_CODE (label) != CODE_LABEL)
abort ();
+ /* Ignore references to labels of containing functions. */
+ if (LABEL_REF_NONLOCAL_P (x))
+ break;
/* If there are other labels following this one,
replace it with the last of the consecutive labels. */
for (next = NEXT_INSN (label); next; next = NEXT_INSN (next))
@@ -3490,6 +3493,9 @@ rtx_renumbered_equal_p (x, y)
return XINT (x, 0) == XINT (y, 0);
case LABEL_REF:
+ /* We can't assume nonlocal labels have their following insns yet. */
+ if (LABEL_REF_NONLOCAL_P (x) || LABEL_REF_NONLOCAL_P (y))
+ return XEXP (x, 0) == XEXP (y, 0);
/* Two label-refs are equivalent if they point at labels
in the same position in the instruction stream. */
return (next_real_insn (XEXP (x, 0))