aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-03-21 22:04:32 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-03-21 22:04:32 +0100
commit11b6a02e916d12fd619e97b5117211ab097394b2 (patch)
tree3b29c079850c227879f3a28af9b7a2bf1dc11a12 /gcc/lra.c
parentb94078834d4fb41cd0363d3100f0cf1570ecbf82 (diff)
downloadgcc-11b6a02e916d12fd619e97b5117211ab097394b2.zip
gcc-11b6a02e916d12fd619e97b5117211ab097394b2.tar.gz
gcc-11b6a02e916d12fd619e97b5117211ab097394b2.tar.bz2
re PR rtl-optimization/70326 (ICE: RTL check: expected elt 3 type 'e' or 'u', have '0' (rtx note) in PATTERN, at rtl.h:1440)
PR middle-end/70326 * lra.c (restore_scratches): Ignore deleted insns. * gcc.dg/pr70326.c: New test. From-SVN: r234383
Diffstat (limited to 'gcc/lra.c')
-rw-r--r--gcc/lra.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index a6ce365..a724ef7 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -1967,6 +1967,10 @@ restore_scratches (void)
for (i = 0; scratches.iterate (i, &loc); i++)
{
+ /* Ignore already deleted insns. */
+ if (NOTE_P (loc->insn)
+ && NOTE_KIND (loc->insn) == NOTE_INSN_DELETED)
+ continue;
if (last != loc->insn)
{
last = loc->insn;