From 375e3d0742b13d703bf9d97ca5f5e6770866f603 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Thu, 2 Aug 2012 00:34:26 +0000 Subject: [PATCH] re PR debug/52983 (internal compiler error: in df_uses_record, at df-scan.c:3243) PR debug/52983 * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally, falling back to copy_rtx on non-autoinc machines. (propagate_for_debug_subst): Always use cleanup_auto_inc_dec. From-SVN: r190062 --- gcc/ChangeLog | 7 +++++++ gcc/valtrack.c | 11 +++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea9a7b142222..631f2eeb1c35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-08-01 Alexandre Oliva + + PR debug/52983 + * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally, + falling back to copy_rtx on non-autoinc machines. + (propagate_for_debug_subst): Always use cleanup_auto_inc_dec. + 2012-08-01 Alexandre Oliva PR debug/52983 diff --git a/gcc/valtrack.c b/gcc/valtrack.c index 3e03599ac682..9119cb96744f 100644 --- a/gcc/valtrack.c +++ b/gcc/valtrack.c @@ -32,11 +32,11 @@ along with GCC; see the file COPYING3. If not see /* Replace auto-increment addressing modes with explicit operations to access the same addresses without modifying the corresponding registers. */ -#ifdef AUTO_INC_DEC static rtx cleanup_auto_inc_dec (rtx src, enum machine_mode mem_mode ATTRIBUTE_UNUSED) { rtx x = src; +#ifdef AUTO_INC_DEC const RTX_CODE code = GET_CODE (x); int i; const char *fmt; @@ -117,9 +117,12 @@ cleanup_auto_inc_dec (rtx src, enum machine_mode mem_mode ATTRIBUTE_UNUSED) = cleanup_auto_inc_dec (XVECEXP (src, i, j), mem_mode); } +#else /* !AUTO_INC_DEC */ + x = copy_rtx (x); +#endif /* !AUTO_INC_DEC */ + return x; } -#endif /* Auxiliary data structure for propagate_for_debug_stmt. */ @@ -142,11 +145,7 @@ propagate_for_debug_subst (rtx from, const_rtx old_rtx, void *data) if (!pair->adjusted) { pair->adjusted = true; -#ifdef AUTO_INC_DEC pair->to = cleanup_auto_inc_dec (pair->to, VOIDmode); -#else - pair->to = copy_rtx (pair->to); -#endif pair->to = make_compound_operation (pair->to, SET); return pair->to; } -- 2.39.5