Comment 9 for bug 809768

Revision history for this message
Ken Werner (kwerner) wrote :

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):
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.