re PR debug/52983 (internal compiler error: in df_uses_record, at df-scan.c:3243)
authorAlexandre Oliva <aoliva@redhat.com>
Thu, 2 Aug 2012 00:34:26 +0000 (00:34 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Thu, 2 Aug 2012 00:34:26 +0000 (00:34 +0000)
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
gcc/valtrack.c

index ea9a7b1422222d384cf0a8cb5f20fa26db683088..631f2eeb1c35d64bc49a7791df7dfa3355a552ab 100644 (file)
@@ -1,3 +1,10 @@
+2012-08-01  Alexandre Oliva  <aoliva@redhat.com>
+
+       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  <aoliva@redhat.com>
 
        PR debug/52983
index 3e03599ac682573eace7ecedbfb51aed5a404399..9119cb96744f016e94ebeb6846897019452b088e 100644 (file)
@@ -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;
     }