re PR middle-end/61141 (c-common.c:1502:1: ICE: in reset_insn_used_flags, at emit...
authorJohn David Anglin <danglin@gcc.gnu.org>
Mon, 9 Jun 2014 16:41:10 +0000 (16:41 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 9 Jun 2014 16:41:10 +0000 (10:41 -0600)
2014-05-18  John David Anglin  <danglin@gcc.gnu.org>

PR middle-end/61141
* emit-rtl.c (reset_all_used_flags): In a sequence, check that
XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
(verify_rtl_sharing): Likewise.

From-SVN: r211380

gcc/ChangeLog
gcc/emit-rtl.c

index dd8cd87..e12f2f9 100644 (file)
@@ -1,3 +1,10 @@
+2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
+
+       PR middle-end/61141
+       * emit-rtl.c (reset_all_used_flags): In a sequence, check that
+       XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
+       (verify_rtl_sharing): Likewise.  
+
 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
 
        PR c++/54442
index ceb072a..80e5b2c 100644 (file)
@@ -2719,7 +2719,11 @@ reset_all_used_flags (void)
          {
            gcc_assert (REG_NOTES (p) == NULL);
            for (int i = 0; i < XVECLEN (pat, 0); i++)
-             reset_insn_used_flags (XVECEXP (pat, 0, i));
+             {
+               rtx insn = XVECEXP (pat, 0, i);
+               if (INSN_P (insn))
+                 reset_insn_used_flags (insn);
+             }
          }
       }
 }
@@ -2756,7 +2760,11 @@ verify_rtl_sharing (void)
          verify_insn_sharing (p);
        else
          for (int i = 0; i < XVECLEN (pat, 0); i++)
-           verify_insn_sharing (XVECEXP (pat, 0, i));
+             {
+               rtx insn = XVECEXP (pat, 0, i);
+               if (INSN_P (insn))
+                 verify_insn_sharing (insn);
+             }
       }
 
   reset_all_used_flags ();