------- Comment #4 from hubicka at gcc dot gnu dot org 2009-05-14 15:29 ------- This looks like latent bug in dwarf2out. There is location list: .LLST2: .long .LVL0-.Ltext0 # Location list begin address (*.LLST2) .long .LVL1-.Ltext0 # Location list end address (*.LLST2) .value 0x2 # Location expression size .byte 0x91 # DW_OP_fbreg .sleb128 0 .long .LVL1-.Ltext0 # Location list begin address (*.LLST2) .long .LFE6-.Ltext0 # Location list end address (*.LLST2) .value 0x2 # Location expression size .byte 0x75 # DW_OP_breg5 .sleb128 8 .long 0x0 # Location list terminator begin (*.LLST2) .long 0x0 # Location list terminator end (*.LLST2)
and LFE6 is not defined. It is used from from foo as: .uleb128 0xb # (DIE (0x297) DW_TAG_lexical_block) .uleb128 0x10 # (DIE (0x298) DW_TAG_formal_parameter) .long 0x20d # DW_AT_abstract_origin .long .LLST2 # DW_AT_location .uleb128 0x10 # (DIE (0x20d) DW_TAG_formal_parameter) .long 0xd5 # DW_AT_abstract_origin .long .LLST1 # DW_AT_location .uleb128 0x8 # (DIE (0xd5) DW_TAG_formal_parameter) .ascii "t\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file (b.c) .byte 0x22 # DW_AT_decl_line .long 0x78 # DW_AT_type -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40126