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.