Bug in gcc/jump.c not correctly handling BARRIER insn.

Jeffrey A Law law@cygnus.com
Wed May 27 01:04:00 GMT 1998


  In message < 199805251620.QAA00173@iron.rcp.co.uk >you write:
  > 
  > 
  > Hi,
  > 
  > In the ecgs-19980517 snapshot the following code
  > from thread_jumps @ line 4526 is not handling the
  > senerio that "prev" may turn out to be a BARRIER
  > 
  > 
  > instruction.
  > 
  > if (JUMP_LABEL (b1) != new_label)
  > {
  >    rtx prev = PREV_INSN (new_label);
  > 
  >    if (flag_before_loop
  >       && NOTE_LINE_NUMBER (prev) == NOTE_INSN_LOOP_BEG)
  >    {
  >        /* Don't thread to the loop label.  If a loop
  >           label is reused, loop optimization will
  >           be disabled for that loop.  */
  >         new_label = gen_label_rtx ();
  >         emit_label_after (new_label, PREV_INSN (prev));
  >    }
  >    changed |= redirect_jump (b1, new_label);
  > }
Do you have a testcase for this or did you find this by
examination?

jeff



More information about the Gcc-bugs mailing list