http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57001
Bug #: 57001 Summary: internal compiler error: in simplify_subreg, at simplify-rtx.c:5800 Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: ste...@gcc.gnu.org On sparc -m32 -fnon-call-exceptions (found while looking at PR52321): $ cat ice.c int test (int x, int y) { return x == y; } $ ./cc1 -m32 -O2 -quiet ice.c -fnon-call-exceptions ice.c:5:1: internal compiler error: in simplify_subreg, at simplify-rtx.c:5800 } ^ 0x5ae54b simplify_subreg(machine_mode, rtx_def*, machine_mode, unsigned int) ../../trunk/gcc/simplify-rtx.c:5800 0x8a629f assemble_integer(rtx_def*, unsigned int, unsigned int, int) ../../trunk/gcc/varasm.c:2530 0x27bfcb dw2_assemble_integer(int, rtx_def*) ../../trunk/gcc/dwarf2asm.c:54 0x27c0d7 dw2_asm_output_encoded_addr_rtx(int, rtx_def*, bool, char const*, ...) ../../trunk/gcc/dwarf2asm.c:991 0x28d447 output_fde ../../trunk/gcc/dwarf2out.c:558 0x290ae7 output_call_frame_info ../../trunk/gcc/dwarf2out.c:881 0x290c37 dwarf2out_frame_finish() ../../trunk/gcc/dwarf2out.c:1119 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. $ ./xgcc --version xgcc (GCC) 4.9.0 20130418 (experimental) [trunk revision 198052] Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ (gdb) run Starting program: /home/stevenb/devel/build-debug/gcc/cc1 -m32 -O2 -quiet ice.c -fnon-call-exceptions Breakpoint 1, internal_error (gmsgid=0xb8f8e8 "in %s, at %s:%d") at ../../trunk/gcc/diagnostic.c:1121 1121 va_start (ap, gmsgid); Current language: auto; currently c++ (gdb) up #1 0x00a69744 in fancy_abort (file=0xb62b08 "../../trunk/gcc/simplify-rtx.c", line=5800, function=0xb62bc8 "simplify_subreg") at ../../trunk/gcc/diagnostic.c:1177 1177 internal_error ("in %s, at %s:%d", function, trim_filename (file), line); (gdb) #2 0x005ae54c in simplify_subreg (outermode=SImode, op=0xf78de0a8, innermode=DImode, byte=0) at ../../trunk/gcc/simplify-rtx.c:5800 5800 || GET_MODE (op) == VOIDmode); (gdb) l 5795 gcc_assert (outermode != VOIDmode); 5796 gcc_assert (innermode != BLKmode); 5797 gcc_assert (outermode != BLKmode); 5798 5799 gcc_assert (GET_MODE (op) == innermode 5800 || GET_MODE (op) == VOIDmode); 5801 5802 if ((byte % GET_MODE_SIZE (outermode)) != 0) 5803 return NULL_RTX; 5804 (gdb) p op $1 = (rtx) 0xf78de0a8 (gdb) p debug_rtx(op) (symbol_ref:SI ("*.LFB0") [flags 0x2]) $2 = void (gdb) bt 10 #0 internal_error (gmsgid=0xb8f8e8 "in %s, at %s:%d") at ../../trunk/gcc/diagnostic.c:1121 #1 0x00a69744 in fancy_abort (file=0xb62b08 "../../trunk/gcc/simplify-rtx.c", line=5800, function=0xb62bc8 "simplify_subreg") at ../../trunk/gcc/diagnostic.c:1177 #2 0x005ae54c in simplify_subreg (outermode=SImode, op=0xf78de0a8, innermode=DImode, byte=0) at ../../trunk/gcc/simplify-rtx.c:5800 #3 0x008a62a0 in assemble_integer (x=0xf78de0a8, size=8, align=<value optimized out>, force=1) at ../../trunk/gcc/varasm.c:2530 #4 0x0027bfcc in dw2_assemble_integer (size=8, x=0xf78de0a8) at ../../trunk/gcc/dwarf2asm.c:54 #5 0x0027c0d8 in dw2_asm_output_encoded_addr_rtx (encoding=0, addr=0xf78de0a8, is_public=false, comment=0xb3f090 "FDE initial location") at ../../trunk/gcc/dwarf2asm.c:991 #6 0x0028d448 in output_fde (fde=0xf7842360, for_eh=true, second=false, section_start_label=0xffffd0d0 "*.Lframe1", fde_encoding=0, augmentation=0xffffd118 "", any_lsda_needed=false, lsda_encoding=0) at ../../trunk/gcc/dwarf2out.c:558 #7 0x00290ae8 in output_call_frame_info (for_eh=1) at ../../trunk/gcc/dwarf2out.c:881 #8 0x00290c38 in dwarf2out_frame_finish () at ../../trunk/gcc/dwarf2out.c:1119 #9 0x005cd338 in compile_file () at ../../trunk/gcc/toplev.c:595 (More stack frames follow...) (gdb) ... #5 0x0027c0d8 in dw2_asm_output_encoded_addr_rtx (encoding=0, addr=0xf78de0a8, is_public=false, comment=0xb3f090 "FDE initial location") at ../../trunk/gcc/dwarf2asm.c:991 991 dw2_assemble_integer (size, addr); (gdb) p debug_rtx(addr) (symbol_ref:SI ("*.LFB0") [flags 0x2])