diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-09 16:41:10 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-09 16:41:10 +0000 |
commit | 11c8949c38b7deaa6ed7b70143599cfd9dd4798e (patch) | |
tree | 39a17786464eca67269e1c8d16a689aead2d5f28 | |
parent | 1aa498d273b865149def7ac961695f4e3f3d775a (diff) | |
download | gcc-11c8949c38b7deaa6ed7b70143599cfd9dd4798e.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211380 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 12 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd8cd87a49d..e12f2f9a1c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index ceb072a5522..80e5b2c1cc6 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 (); |