sh.c (sh_reorg): Ignore deleted insns whilst walking the LOG_LINKS chain.
authorNick Clifton <nickc@redhat.com>
Thu, 13 Jul 2006 07:55:25 +0000 (07:55 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 13 Jul 2006 07:55:25 +0000 (07:55 +0000)
* config/sh/sh.c (sh_reorg): Ignore deleted insns whilst walking the
  LOG_LINKS chain.

From-SVN: r115412

gcc/ChangeLog
gcc/config/sh/sh.c

index 9e907dd364769d29a1a3434a465cfb46ef67b0eb..dd490fa8a054e6b6c43781a4a14ae115aadfabce 100644 (file)
@@ -1,3 +1,8 @@
+2006-07-13  Nick Clifton  <nickc@redhat.com>
+
+       * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
+       walking the LOG_LINKS chain.
+  
 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
 
        * doc/invoke.texi (C++ Dialect Options): Explain difference
index 7e11e3f199d5d5b989ab174784487edd4475bb54..97d87416f1c8c2a05d93ff39faf09a621a0fa5e9 100644 (file)
@@ -4466,12 +4466,17 @@ sh_reorg (void)
 
          for (link = LOG_LINKS (insn); link; link = XEXP (link, 1))
            {
+             rtx linked_insn;
+
              if (REG_NOTE_KIND (link) != 0)
                continue;
-             set = single_set (XEXP (link, 0));
-             if (set && rtx_equal_p (reg, SET_DEST (set)))
+             linked_insn = XEXP (link, 0);
+             set = single_set (linked_insn);
+             if (set
+                 && rtx_equal_p (reg, SET_DEST (set))
+                 && ! INSN_DELETED_P (linked_insn))
                {
-                 link = XEXP (link, 0);
+                 link = linked_insn;
                  break;
                }
            }