From e7206ab1c324ac4e6a8e4a9d5bf19b1b1d91f68f Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Thu, 2 Aug 2012 00:34:41 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/valtrack.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 631f2eeb1c3..f0026f2e5d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-08-01 Alexandre Oliva + + PR debug/52983 + * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec. + 2012-08-01 Alexandre Oliva PR debug/52983 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. */