re PR target/59222 (gcc.c-torture/compile/20050622-1.c ICEs at -O1 and above for...
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 27 Feb 2014 17:06:02 +0000 (17:06 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Thu, 27 Feb 2014 17:06:02 +0000 (17:06 +0000)
2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>

PR target/59222
* lra.c (lra_emit_add): Check SUBREG too.

From-SVN: r208201

gcc/ChangeLog
gcc/lra.c

index d6b436edbb685a8ed69c0a0c49a067b379bd47fe..8a787163b5b694ab8d4e00026b934b830565ae9c 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/59222
+       * lra.c (lra_emit_add): Check SUBREG too.
+
 2014-02-27  Andreas Schwab  <schwab@suse.de>
 
        * config/m68k/m68k.c (m68k_option_override): Disable
index d052b363ce9f08d3d2fd154bf458a2543c1a712e..77074e296540da75550ff08b70a74db055bafc07 100644 (file)
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -340,8 +340,9 @@ lra_emit_add (rtx x, rtx y, rtx z)
          base = a1;
          index = a2;
        }
-      if (! REG_P (base)
-         || (index != NULL_RTX && ! REG_P (index))
+      if (! (REG_P (base) || GET_CODE (base) == SUBREG)
+         || (index != NULL_RTX
+             && ! (REG_P (index) || GET_CODE (index) == SUBREG))
          || (disp != NULL_RTX && ! CONSTANT_P (disp))
          || (scale != NULL_RTX && ! CONSTANT_P (scale)))
        {