+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
 
 /* 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;
            = 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.  */
 
   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;
     }