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