On Tue, Mar 20, 2012 at 09:51:07AM +0100, Eric Botcazou wrote:
> > The patch is bootstrapping now on x86_64-pc-linux-gnu.
> 
> It very likely breaks bootstrap with RTL checking enabled:
> 
> /sil.a/gnatmail/gnatmail-x/build-sil/x86-linux/gnat/obj/./gcc/xgcc 
> -B/sil.a/gnatmail/gnatmail-x/build-sil/x86-linux/gnat/obj/./gcc/ 
> -B/usr/gnat/i686-pc-linux-gnu/bin/ -B/usr/gnat/i686-pc-linux-gnu/lib/ 
> -isystem /usr/gnat/i686-pc-linux-gnu/include -isystem 
> /usr/gnat/i686-pc-linux-gnu/sys-include    -g -O2 -O2  -g -O2 -DIN_GCC   -W 
> -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes 
> -Wold-style-definition  -isystem ./include   -fpic -g -DIN_LIBGCC2 
> -fbuilding-libgcc -fno-stack-protector   -fpic -I. -I. -I../.././gcc 
> -I../../../src/libgcc -I../../../src/libgcc/. -I../../../src/libgcc/../gcc 
> -I../../../src/libgcc/../include -I../../../src/libgcc/config/libbid 
> -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS  -DUSE_TLS -o 
> _popcountsi2.o -MT _popcountsi2.o -MD -MP -MF 
> _popcountsi2.dep -DL_popcountsi2 -c ../../../src/libgcc/libgcc2.c 
> -fvisibility=hidden -DHIDE_EXPORTS
> ../../../src/libgcc/libgcc2.c: In function '__popcountsi2':
> ../../../src/libgcc/libgcc2.c:835:1: internal compiler error: RTL check: 
> expected elt 1 type 'i' or 'n', have '0' (rtx mem) in ix86_decompose_address, 
> at config/i386/i386.c:11522
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:mailto:rep...@adacore.com> for instructions.
> make[3]: *** [_popcountsi2.o] Error 1

Yeah, my bootstrap just failed the same.  Will test:

2012-03-20  Jakub Jelinek  <ja...@redhat.com>

        * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
        If operand isn't UNSPEC, return 0.

--- gcc/config/i386/i386.c.jj   2012-03-20 09:35:06.000000000 +0100
+++ gcc/config/i386/i386.c      2012-03-20 09:56:35.038835835 +0100
@@ -11516,6 +11516,8 @@ ix86_decompose_address (rtx addr, struct
 
            case ZERO_EXTEND:
              op = XEXP (op, 0);
+             if (GET_CODE (op) != UNSPEC)
+               return 0;
              /* FALLTHRU */
 
            case UNSPEC:

        Jakub

Reply via email to