diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2012-08-02 00:34:41 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2012-08-02 00:34:41 +0000 |
commit | e7206ab1c324ac4e6a8e4a9d5bf19b1b1d91f68f (patch) | |
tree | 7f2b9f6efbbaf7b9cab767316cda235359360667 /gcc/valtrack.c | |
parent | 375e3d0742b13d703bf9d97ca5f5e6770866f603 (diff) | |
download | gcc-e7206ab1c324ac4e6a8e4a9d5bf19b1b1d91f68f.tar.gz |
re PR debug/52983 (internal compiler error: in df_uses_record, at df-scan.c:3243)
PR debug/52983
* valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
From-SVN: r190063
Diffstat (limited to 'gcc/valtrack.c')
-rw-r--r-- | gcc/valtrack.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/valtrack.c b/gcc/valtrack.c index 9119cb96744..72c49889c96 100644 --- a/gcc/valtrack.c +++ b/gcc/valtrack.c @@ -388,7 +388,7 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno, breg = NULL; /* Cool, it's the same REG, we can use SRC. */ else if (dest == reg) - breg = copy_rtx (src); + breg = cleanup_auto_inc_dec (src, VOIDmode); else if (REG_P (dest)) { /* Hmm... Something's fishy, we should be setting REG here. */ @@ -406,7 +406,8 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno, /* Ok, it's the same (hardware) REG, but with a different mode, so SUBREG it. */ else - breg = lowpart_subreg (GET_MODE (reg), copy_rtx (src), + breg = lowpart_subreg (GET_MODE (reg), + cleanup_auto_inc_dec (src, VOIDmode), GET_MODE (dest)); } else if (GET_CODE (dest) == SUBREG) @@ -427,7 +428,8 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno, breg = NULL; /* Yay, we can use SRC, just adjust its mode. */ else - breg = lowpart_subreg (GET_MODE (reg), copy_rtx (src), + breg = lowpart_subreg (GET_MODE (reg), + cleanup_auto_inc_dec (src, VOIDmode), GET_MODE (dest)); } /* Oh well, we're out of luck. */ |