http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52372
Bug #: 52372 Summary: gcc.target/mips/mips16-attributes{,-4}.c SEGV in dwf_regno Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: rsand...@gcc.gnu.org Host: mips-sgi-irix6.5 Target: mips-sgi-irix6.5 Build: mips-sgi-irix6.5 The mips16-attributes{, -4}.c tests ICE on IRIX 6: FAIL: gcc.target/mips/mips16-attributes-4.c (internal compiler error) FAIL: gcc.target/mips/mips16-attributes-4.c (test for excess errors) FAIL: gcc.target/mips/mips16-attributes.c (internal compiler error) FAIL: gcc.target/mips/mips16-attributes.c (test for excess errors) In the first case, I find: /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/mips/mips16-attributes-4.c: In function 'bar': /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/mips/mips16-attributes-4.c:9:1: internal compiler error: Segmentation fault The failure boils down to $ cc1 -fpreprocessed mips16-attributes-4.i -quiet -mabi=o64 -mlong32 -mno-synci -o mips16-attributes-4.s In gdb,I see Program received signal SIGSEGV, Segmentation fault. 0x104b4048 in dwf_regno (reg=0x40280b8) at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:912 (gdb) p reg $1 = (const_rtx) 0x40280b8 (gdb) pr (pc) (gdb) where #0 0x104b4048 in dwf_regno (reg=0x40280b8) at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:912 #1 dwarf2out_flush_queued_reg_saves () at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:994 #2 0x104b56d4 in dwarf2out_frame_debug (insn=0x40f05e0) at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:2038 #3 scan_insn_after (insn=insn@entry=0x4033048) at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:2361 #4 0x104b6b74 in scan_trace (trace=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:2505 #5 0x104b7e0c in create_cfi_notes () at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:2549 #6 execute_dwarf2_frame () at /vol/gcc/src/hg/trunk/local/gcc/dwarf2cfi.c:2907 #7 0x104f5bec in execute_one_pass (pass=pass@entry=0x10dc3708) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2081 #8 0x104f6088 in execute_pass_list (pass=0x10dc3708) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2136 #9 0x104f60a4 in execute_pass_list (pass=0x10dc3970) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2137 #10 0x104f60a4 in execute_pass_list (pass=0x10dc39a8) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2137 #11 0x1078c50c in tree_rest_of_compilation (fndecl=0x40b9100) at /vol/gcc/src/hg/trunk/local/gcc/tree-optimize.c:422 #12 0x105d533c in cgraph_expand_function (node=0x40d80a8) at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:1837 #13 0x105d7564 in cgraph_output_in_order () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2002 #14 cgraph_optimize () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2213 #15 0x105d792c in cgraph_finalize_compilation_unit () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:1344 #16 0x10187cf4 in c_write_global_declarations () at /vol/gcc/src/hg/trunk/local/gcc/c-decl.c:10031 #17 0x10277148 in compile_file () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:573 #18 do_compile () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:1938 #19 toplev_main (argc=9, argv=0x7ffb7f04) at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2014 #20 0x101723f0 in __start () I didn't easily see how to find the equivalent of REGNO(reg) in dwf_regno. Rainer