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) --