cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned NOTE_INSN_LOOP_CONT notes...
authorRoger Sayle <roger@eyesopen.com>
Tue, 17 Sep 2002 09:03:57 +0000 (09:03 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Tue, 17 Sep 2002 09:03:57 +0000 (09:03 +0000)
* cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned
NOTE_INSN_LOOP_CONT notes when deleting basic blocks.

From-SVN: r57243

gcc/ChangeLog
gcc/cfgrtl.c

index ee29a5a3238ef39b3ee622912238fc60166749b1..086cdd5af408aac34f11fb84dd4702ba2f72ed91 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-17  Roger Sayle  <roger@eyesopen.com>
+
+       * cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned
+       NOTE_INSN_LOOP_CONT notes when deleting basic blocks.
+
 2002-09-16  Richard Henderson  <rth@redhat.com>
 
        * expr.c (emit_block_move): Set memory block size as appropriate
index 25a5c9f78b57aa4762607fcd0ba4854335ef54c8..a72123911f9069f4899ecbaf534df8b2e6011430 100644 (file)
@@ -360,13 +360,15 @@ flow_delete_block_noexpunge (b)
      and remove the associated NOTE_INSN_EH_REGION_BEG and
      NOTE_INSN_EH_REGION_END notes.  */
 
-  /* Get rid of all NOTE_INSN_PREDICTIONs hanging before the block.  */
+  /* Get rid of all NOTE_INSN_PREDICTIONs and NOTE_INSN_LOOP_CONTs
+     hanging before the block.  */
 
   for (insn = PREV_INSN (b->head); insn; insn = PREV_INSN (insn))
     {
       if (GET_CODE (insn) != NOTE)
        break;
-      if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_PREDICTION)
+      if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_PREDICTION
+         || NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_CONT)
        NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
     }