http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47744

--- Comment #18 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-17 21:28:02 
UTC ---
(In reply to comment #16)
> Following patch to original ix86_decompose_address solves all failures for me:
> 
> --cut here--
> Index: i386.c
> ===================================================================
> --- i386.c    (revision 176373)
> +++ i386.c    (working copy)
> @@ -11149,8 +11149,11 @@ ix86_decompose_address (rtx addr, struct
>          return 0;
>            break;
> 
> -        case REG:
>          case SUBREG:
> +          if (GET_CODE (op) != REG)
> +        return 0;
> +
> +        case REG:
>            if (!base)
>          base = op;
>            else if (!index)
> --cut here--

This is the same as

---
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index c728c51..414b528 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -11380,7 +11382,6 @@ ix86_decompose_address (rtx addr, struct ix86_address
*out)
           break;

         case REG:
-        case SUBREG:
           if (!base)
         base = op;
           else if (!index)
--

Reply via email to