diff options
author | Jakub Jelinek <jakub@redhat.com> | 2012-09-03 13:42:31 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2012-09-03 13:42:31 +0200 |
commit | d540153b6766cc4079627ef9d70afff529b3301f (patch) | |
tree | 1cc0336651921c6cc3eba430381c6f918a4de8fc /gcc/valtrack.c | |
parent | 28b4fc515b603d90e022b8c0a75cde539a27d3d1 (diff) | |
download | gcc-d540153b6766cc4079627ef9d70afff529b3301f.tar.gz |
re PR debug/53923 (ICE: RTL check: expected code 'reg', have 'debug_expr' in rhs_regno, at rtl.h:1091)
PR debug/53923
* valtrack.c (dead_debug_insert_temp): Drop non-reg uses
from the chain.
From-SVN: r190883
Diffstat (limited to 'gcc/valtrack.c')
-rw-r--r-- | gcc/valtrack.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/valtrack.c b/gcc/valtrack.c index b4eb5785ba3..2cdb06b174e 100644 --- a/gcc/valtrack.c +++ b/gcc/valtrack.c @@ -333,6 +333,14 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno, { if (DF_REF_REGNO (cur->use) == uregno) { + /* If this loc has been changed e.g. to debug_expr already + as part of a multi-register use, just drop it. */ + if (!REG_P (*DF_REF_REAL_LOC (cur->use))) + { + *tailp = cur->next; + XDELETE (cur); + continue; + } *usesp = cur; usesp = &cur->next; *tailp = cur->next; |