http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59460
Bug ID: 59460 Summary: [4.9 Regression] ICE with -mips16 and __attribute__((nomips16)) Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: robert.suchanek at imgtec dot com Target: mips16 A number of failures started to appear on the trunk for mips-elf target (possibly other targets too) and all of the new failures are related to the fix for PR58115. The following is a narrowed testcase that triggers an ICE. It crashes when attributes for a function try to override -mips16 argument given on the commandline. I found another problem with the testcase when the function takes an argument of type v2sf: the compiler segfaults due to recursive calls, but this also points to the fix. $ cat mips-ps-2.c typedef float v2sf __attribute__ ((vector_size(8))); __attribute__((nomips16)) v2sf foo () {} $ mips-elf-gcc -mips32r2 -mfp64 -mips16 -mpaired-single -c mips-ps-2.c mips-ps-2.c: In function ‘foo’: mips-ps-2.c:3:1: internal compiler error: in emit_move_multi_word, at expr.c:3518 __attribute__((nomips16)) v2sf foo () {} ^ 0x736d43 emit_move_multi_word ../../gcc-trunk/gcc/expr.c:3518 0x736061 emit_move_insn(rtx_def*, rtx_def*) ../../gcc-trunk/gcc/expr.c:3650 0x7b5d0a expand_function_end() ../../gcc-trunk/gcc/function.c:5120 0x65fef0 construct_exit_block ../../gcc-trunk/gcc/cfgexpand.c:5282 0x65fef0 gimple_expand_cfg ../../gcc-trunk/gcc/cfgexpand.c:5737 0x65fef0 execute ../../gcc-trunk/gcc/cfgexpand.c:5932 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.