$ cat foo.i typedef long double Tal2ldouble __attribute__((aligned (2))); struct S2015 { Tal2ldouble a; }; extern struct S2015 check2015 (); extern void checkx2015 (struct S2015); void test2015 (void) { checkx2015 (check2015 ()); } boltzmann ~/devel/irun $ cat foo.i typedef long double Tal2ldouble __attribute__((aligned (2))); struct S2015 { Tal2ldouble a; }; extern struct S2015 check2015 (); extern void checkx2015 (struct S2015); void test2015 (void) { checkx2015 (check2015 ()); } boltzmann ~/devel/irun $ ./bin/gcc foo.i gcc: Internal error: Segmentation fault (program cc1)
$ ./bin/gcc foo.i gcc: Internal error: Segmentation fault (program cc1) The backtrace for the segfault is: Program received signal SIGSEGV, Segmentation fault. 0x1014a75c in mips_cannot_change_mode_class (from=TImode, to=DImode, class=FP_REGS) at ../../trunk/gcc/config/mips/mips.c:8732 8732 { (gdb) bt #0 0x1014a75c in mips_cannot_change_mode_class (from=TImode, to=DImode, class=FP_REGS) at ../../trunk/gcc/config/mips/mips.c:8732 #1 0x104b7ef4 in simplify_subreg (outermode=DImode, op=0x40bb280, innermode=TImode, byte=0) at ../../trunk/gcc/simplify-rtx.c:5021 #2 0x104b8bec in simplify_gen_subreg (outermode=TImode, op=0xa, innermode=SImode, byte=0) at ../../trunk/gcc/simplify-rtx.c:5218 #3 0x1020d0a0 in emit_move_multi_word (mode=TImode, x=0x50e1660, y=0x40bb280) at ../../trunk/gcc/expr.c:3265 #4 0x10209e50 in emit_move_insn (x=0x50e1660, y=0x40bb280) at ../../trunk/gcc/expr.c:3408 #5 0x101aaef4 in copy_to_reg (x=0x40bb280) at ../../trunk/gcc/explow.c:617 #6 0x1018fc6c in operand_subword_force (op=0x40bb280, offset=0, mode=TImode) at ../../trunk/gcc/emit-rtl.c:1448 #7 0x1020d2b0 in emit_move_multi_word (mode=TImode, x=0x50e1640, y=0x40bb280) at ../../trunk/gcc/expr.c:3276 #8 0x10209e50 in emit_move_insn (x=0x50e1640, y=0x40bb280) at ../../trunk/gcc/expr.c:3408 #9 0x101aaef4 in copy_to_reg (x=0x40bb280) at ../../trunk/gcc/explow.c:617 #10 0x1018fc6c in operand_subword_force (op=0x40bb280, offset=0, mode=TImode) at ../../trunk/gcc/emit-rtl.c:1448 -- Summary: Segfault in mips_cannot_change_mode_class Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: fxcoudert at gcc dot gnu dot org GCC build triplet: mips-sgi-irix6.5 GCC host triplet: mips-sgi-irix6.5 GCC target triplet: mips-sgi-irix6.5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34042