From: John David Anglin Date: Mon, 9 Jun 2014 16:41:10 +0000 (+0000) Subject: re PR middle-end/61141 (c-common.c:1502:1: ICE: in reset_insn_used_flags, at emit... X-Git-Tag: releases/gcc-5.1.0~7000 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=748e88da7ede35273266e9f35488a9a4dd299f84;p=thirdparty%2Fgcc.git re PR middle-end/61141 (c-common.c:1502:1: ICE: in reset_insn_used_flags, at emit-rtl.c:2677) 2014-05-18 John David Anglin 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd8cd87a49d8..e12f2f9a1c2b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-05-18 John David Anglin + + 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 PR c++/54442 diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index ceb072a55221..80e5b2c1cc68 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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 ();