From: Richard Kenner Date: Tue, 23 Nov 1993 23:05:04 +0000 (-0500) Subject: (rare_destination): Ensure we always correctly handle a null X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=65753f559890e97f7d0296a6558300dc9ee98e23;p=gcc.git (rare_destination): Ensure we always correctly handle a null JUMP_LABEL. From-SVN: r6150 --- diff --git a/gcc/reorg.c b/gcc/reorg.c index 515964ce0c6..d62fd2d4cbd 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -1239,7 +1239,7 @@ get_jump_flags (insn, label) return flags; } -/* Return 1 if DEST is a destination that will be branched to rarely (the +/* Return 1 if INSN is a destination that will be branched to rarely (the return point of a function); return 2 if DEST will be branched to very rarely (a call to a function that doesn't return). Otherwise, return 0. */ @@ -1249,12 +1249,15 @@ rare_destination (insn) rtx insn; { int jump_count = 0; + rtx next; - for (; insn; insn = NEXT_INSN (insn)) + for (; insn; insn = next) { if (GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) == SEQUENCE) insn = XVECEXP (PATTERN (insn), 0, 0); + next = NEXT_INSN (insn); + switch (GET_CODE (insn)) { case CODE_LABEL: @@ -1270,7 +1273,7 @@ rare_destination (insn) return 1; else if (simplejump_p (insn) && jump_count++ < 10) - insn = JUMP_LABEL (insn); + next = JUMP_LABEL (insn); else return 0; }