fix compilation on AUTO_INC_DEC targets
authorNathan Froyd <froydnj@codesourcery.com>
Tue, 5 Apr 2011 18:36:15 +0000 (18:36 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Tue, 5 Apr 2011 18:36:15 +0000 (18:36 +0000)
fix compilation on AUTO_INC_DEC targets
* combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
as an rtx.
(try_combine) [AUTO_INC_DEC]: Declare a local link rtx.

From-SVN: r171995

gcc/ChangeLog
gcc/combine.c

index d38c54986e9ac5d60df98dc74dbdf8d4d946efbe..b7ae95a83aa66403811880a0160c7b6a5b034ff8 100644 (file)
@@ -1,3 +1,9 @@
+2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
+       as an rtx.
+       (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
+
 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
 
        PR middle-end/48441
index 30b7fdd041d926f0b567d62f59e16ff6bdc15e56..3e4a38c0a4603c8ff7a91c5a246ad80237707ff9 100644 (file)
@@ -1139,6 +1139,8 @@ combine_instructions (rtx f, unsigned int nregs)
       FOR_BB_INSNS (this_basic_block, insn)
         if (INSN_P (insn) && BLOCK_FOR_INSN (insn))
          {
+            rtx links;
+
             subst_low_luid = DF_INSN_LUID (insn);
             subst_insn = insn;
 
@@ -2911,15 +2913,18 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p)
     /* It's not the exception.  */
 #endif
 #ifdef AUTO_INC_DEC
-    for (link = REG_NOTES (i3); link; link = XEXP (link, 1))
-      if (REG_NOTE_KIND (link) == REG_INC
-         && (reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i2))
-             || (i1 != 0
-                 && reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i1)))))
-       {
-         undo_all ();
-         return 0;
-       }
+    {
+      rtx link;
+      for (link = REG_NOTES (i3); link; link = XEXP (link, 1))
+       if (REG_NOTE_KIND (link) == REG_INC
+           && (reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i2))
+               || (i1 != 0
+                   && reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i1)))))
+         {
+           undo_all ();
+           return 0;
+         }
+    }
 #endif
 
   /* See if the SETs in I1 or I2 need to be kept around in the merged