diff options
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index ab51d17..53e4d3f 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -3130,24 +3130,19 @@ fixup_tail_calls (void) for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { + rtx note; + /* There are never REG_EQUIV notes for the incoming arguments after the NOTE_INSN_FUNCTION_BEG note, so stop if we see it. */ if (NOTE_P (insn) && NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG) break; - while (1) - { - rtx note = find_reg_note (insn, REG_EQUIV, 0); - if (note) - { - /* Remove the note and keep looking at the notes for - this insn. */ - remove_note (insn, note); - continue; - } - break; - } + note = find_reg_note (insn, REG_EQUIV, 0); + if (note) + remove_note (insn, note); + note = find_reg_note (insn, REG_EQUIV, 0); + gcc_assert (!note); } } |