This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 4.0 generates location list without DW_AT_frame_base
- From: "H. J. Lu" <hjl at lucon dot org>
- To: Daniel Berlin <dberlin at dberlin dot org>
- Cc: gcc at gcc dot gnu dot org, GDB <gdb at sources dot redhat dot com>
- Date: Sat, 1 Jan 2005 11:15:00 -0800
- Subject: Re: gcc 4.0 generates location list without DW_AT_frame_base
- References: <Pine.LNX.4.60.0412301934590.27590@dberlin.org> <20041231163806.GA1335@lucon.org> <Pine.LNX.4.60.0412311158280.27590@dberlin.org> <20041231184405.GA2182@lucon.org> <Pine.LNX.4.60.0412311451060.6844@dberlin.org> <Pine.LNX.4.60.0412311509360.6844@dberlin.org> <20041231215010.GA5722@lucon.org> <20041231215443.GA5853@lucon.org> <Pine.LNX.4.60.0412311656360.6844@dberlin.org> <20041231220324.GA5987@lucon.org>
On Fri, Dec 31, 2004 at 02:03:24PM -0800, H. J. Lu wrote:
> On Fri, Dec 31, 2004 at 04:57:17PM -0500, Daniel Berlin wrote:
> > >0x000000000055c84d in add_location_or_const_value_attribute
> > >(die=0x2a96205820,
> > > decl=0x2a961ad000, attr=DW_AT_location)
> > > at /export/gnu/src/gcc/gcc/gcc/dwarf2out.c:10108
> > >10108 descr = loc_descriptor (NOTE_VAR_LOCATION
> > >(node->var_loc_note),
> > >(gdb) p *loc_list
> > >$4 = {first = 0x0, last = 0x0, decl_id = 14047}
> > >(gdb)
> >
> > Oh, that's weird.
> > Wonder why we added it then.
> > anyway, just change
> > if (loc_list)
> > to
> > if (loc_list && loc_list->first)
>
> I am testing it now. Bootstrap has passed the previous failure. It will
> take a while to finish.
The modified patch works with tls_symbolic_operand in i386. However,
I do see
<2><427491>: Abbrev Number: 39 (DW_TAG_inlined_subroutine)
DW_AT_sibling : <427510>
DW_AT_abstract_origin: <427159>
DW_AT_low_pc : 0x8399aea
DW_AT_high_pc : 0x8399b3c
<3><4274a2>: Abbrev Number: 37 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <42716b>
<3><4274a7>: Abbrev Number: 37 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <427177>
<3><4274ac>: Abbrev Number: 44 (DW_TAG_lexical_block)
DW_AT_low_pc : 0x8399aea
DW_AT_high_pc : 0x8399b3c
<4><4274b5>: Abbrev Number: 42 (DW_TAG_variable)
DW_AT_abstract_origin: <427183>
DW_AT_location : 2 byte block: 91 54 (DW_OP_fbreg: -44)
[without DW_AT_frame_base]
I assume it is normal.
H.J.