http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49382
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-13
19:36:42 UTC ---
Alternatively, even before statement frontiers we could special case parameters
(PARM_DECLs and vars with PARM_DECL DECL_ABSTRACT_ORIGIN) before the first insn
in a function and just emit a zero-length location range for those. So you
would get:
.LLST0:
.quad .LVL1 # Location list begin address (*.LLST0)
.quad .LVL1 # Location list end address (*.LLST0)
.value 0x1 # Location expression size
.byte 0x55 # DW_OP_reg5
.quad .LVL1 # Location list begin address (*.LLST0)
.quad .LVL2-1 # Location list end address (*.LLST0)
.value 0x3 # Location expression size
.byte 0x75 # DW_OP_breg5
.sleb128 1
.byte 0x9f # DW_OP_stack_value
.quad .LVL2-1 # Location list begin address (*.LLST0)
.quad .LFE1 # Location list end address (*.LLST0)
.value 0x6 # Location expression size
.byte 0xf3 # DW_OP_GNU_entry_value
.uleb128 0x1
.byte 0x55 # DW_OP_reg5
.byte 0x23 # DW_OP_plus_uconst
.uleb128 0x1
.byte 0x9f # DW_OP_stack_value
.quad 0 # Location list terminator begin (*.LLST0)
.quad 0 # Location list terminator end (*.LLST0)
Wonder how many dwarflints etc. would complain about it loudly though.