The gcc/dwarf2out.c:reg_loc_descriptor() calls the target hook like this (line 13355):
regs = targetm.dwarf_register_span (rtl);
The input is:
(gdb) p debug_rtx (rtl)
(reg:SI 95 d16 [orig:149 lx ] [149])
The output is an empty array:
(gdb) p debug_rtx (regs)
(parallel [])
I'll attach a small patch that solves the ICE but it would be great if one of the more experienced GCC developers could have a look at this ICE too. There could be a better way to fix this.
It might be a ARM specific bug in the ARM backend that implements TARGET_ DWARF_REGISTER_ SPAN target hook http:// gcc.gnu. org/onlinedocs/ gccint/ Exception- Region- Output. html#index- TARGET_ 005fDWARF_ 005fREGISTER_ 005fSPAN- 4599 . See: arm.c:arm_ dwarf_register_ span() (starts at line 22533)
The gcc/dwarf2out. c:reg_loc_ descriptor( ) calls the target hook like this (line 13355): dwarf_register_ span (rtl);
regs = targetm.
The input is:
(gdb) p debug_rtx (rtl)
(reg:SI 95 d16 [orig:149 lx ] [149])
The output is an empty array:
(gdb) p debug_rtx (regs)
(parallel [])
I'll attach a small patch that solves the ICE but it would be great if one of the more experienced GCC developers could have a look at this ICE too. There could be a better way to fix this.