]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR middle-end/6096, middle-end/6098, middle-end/6099
authorJakub Jelinek <jakub@redhat.com>
Sun, 31 Mar 2002 18:45:21 +0000 (20:45 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sun, 31 Mar 2002 18:45:21 +0000 (20:45 +0200)
PR middle-end/6096, middle-end/6098, middle-end/6099
* reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
CODE_LABELs.
(fill_slots_from_thread): Likewise.

From-SVN: r51668

gcc/ChangeLog
gcc/reorg.c

index bf9421784b4809000756773590465cbab3f72bd4..2bf0bef3cf1727b450115bef8da877182dd325d9 100644 (file)
@@ -1,3 +1,10 @@
+2002-03-31  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/6096, middle-end/6098, middle-end/6099
+       * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
+       CODE_LABELs.
+       (fill_slots_from_thread): Likewise.
+
 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
 
        * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
index b1c33f5bf0dfce34a71dcf571172479ac7df1fea..6fc73f1413b7f927446f55f02f52f77b41a179b5 100644 (file)
@@ -511,7 +511,8 @@ emit_delay_sequence (insn, list, length)
 
            case REG_LABEL:
              /* Keep the label reference count up to date.  */
-             LABEL_NUSES (XEXP (note, 0)) ++;
+             if (GET_CODE (XEXP (note, 0)) == CODE_LABEL)
+               LABEL_NUSES (XEXP (note, 0)) ++;
              break;
 
            default:
@@ -2732,12 +2733,13 @@ fill_slots_from_thread (insn, condition, thread, opposite_thread, likely,
                         temporarily increment the use count on any referenced
                         label lest it be deleted by delete_related_insns.  */
                      note = find_reg_note (trial, REG_LABEL, 0);
-                     if (note)
+                     /* REG_LABEL could be NOTE_INSN_DELETED_LABEL too.  */
+                     if (note && GET_CODE (XEXP (note, 0)) == CODE_LABEL)
                        LABEL_NUSES (XEXP (note, 0))++;
 
                      delete_related_insns (trial);
 
-                     if (note)
+                     if (note && GET_CODE (XEXP (note, 0)) == CODE_LABEL)
                        LABEL_NUSES (XEXP (note, 0))--;
                    }
                  else