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



             Bug #: 55676

           Summary: ICE in int_mode_for_mode, at stor-layout.c:423

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: regression

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: gre...@gcc.gnu.org

            Target: arm-none-eabi





FAIL: gcc.dg/sms-11.c (internal compiler error)



/work/dec-builds/base/install/bin/arm-none-eabi-gcc -S -O2 -fmodulo-sched

/work/local-checkouts/gcc-fsf/gcc/testsuite/gcc.dg/sms-11.c 

/work/local-checkouts/gcc-fsf/gcc/testsuite/gcc.dg/sms-11.c: In function

'invert':

/work/local-checkouts/gcc-fsf/gcc/testsuite/gcc.dg/sms-11.c:28:1: internal

compiler error: in int_mode_for_mode, at stor-layout.c:423

 }

 ^

0x8ca223 int_mode_for_mode(machine_mode)

    /work/local-checkouts/gcc-fsf/gcc/stor-layout.c:423

0x6a0cf1 emit_move_via_integer

    /work/local-checkouts/gcc-fsf/gcc/expr.c:3069

0x6ac7f9 emit_move_ccmode

    /work/local-checkouts/gcc-fsf/gcc/expr.c:3285

0x6ac7f9 emit_move_insn_1(rtx_def*, rtx_def*)

    /work/local-checkouts/gcc-fsf/gcc/expr.c:3436

0x81d9b3 gen_move_insn(rtx_def*, rtx_def*)

    /work/local-checkouts/gcc-fsf/gcc/optabs.c:4794

0xd051f8 schedule_reg_moves

    /work/local-checkouts/gcc-fsf/gcc/modulo-sched.c:769

0xd0854d sms_schedule

    /work/local-checkouts/gcc-fsf/gcc/modulo-sched.c:1691

0xd0854d rest_of_handle_sms

    /work/local-checkouts/gcc-fsf/gcc/modulo-sched.c:3347

Please submit a full bug report,

with preprocessed source if appropriate.



The problem is that emit_move_via_integer called with CCFPmode.



Known to fail with gcc trunk r194473, has been failing for at least a month

with the same error message.



Configured with: /work/local-checkouts/gcc-fsf/configure --target=arm-none-eabi

 --with-newlib --with-gnu-as --with-gnu-ld --enable-languages=c,c++ 

--disable-shared --disable-nls --disable-threads --disable-lto --disable-tls

--enable-checking=yes --disable-libssp --disable-libgomp --disable-libmudflap

--with-cpu=cortex-a15 --with-fpu=neon-vfpv4 --with-float=softfp 



When the test is compiled -mcpu=cortex-a9, there is no ICE but execution fails

with segmentation fault (tested on qemu) because generated code is incorrect.

In the first inner loop, the register r4 that holds the value of j keeps

increasing until tmp array is accessed out of bounds.



$ /work/dec-builds/base/install/bin/arm-none-eabi-gcc

/work/local-checkouts/gcc-fsf/gcc/testsuite/gcc.dg/sms-11.c 

-fno-diagnostics-show-caret   -O2  -lm  -o ./sms-11.exe  -mfloat-abi=softfp 

-mcpu=cortex-a9 -fmodulo-sched

$ qemu-arm sms-11.exe 

qemu: uncaught target signal 11 (Segmentation fault) - core dumped

Segmentation fault

Reply via email to