Re: [google/4.6] For -gfission, remove address table entry when removing location list entry (issue5900045)
On Fri, Mar 23, 2012 at 3:40 PM, Cary Coutant wrote: > > 2012-03-23 Cary Coutant > > * dwarf2out.c (resolve_addr): Remove address table entry for symbol > when removing location list entry. > > > Index: dwarf2out.c > === > --- dwarf2out.c (revision 185594) > +++ dwarf2out.c (working copy) > @@ -23803,11 +23803,15 @@ resolve_addr (dw_die_ref die) > if (!resolve_addr_in_expr ((*curr)->expr)) > { > dw_loc_list_ref next = (*curr)->dw_loc_next; > + dw_loc_descr_ref l = (*curr)->expr; > + > if (next && (*curr)->ll_symbol) > { > gcc_assert (!next->ll_symbol); > next->ll_symbol = (*curr)->ll_symbol; > } > + if (l->dw_loc_oprnd1.val_index != -1U) > + remove_addr_table_entry > (l->dw_loc_oprnd1.val_index); > *curr = next; > } > else > > -- > This patch is available for review at > http://codereview.appspot.com/5900045 This patch is OK for Google 4.6. Sterling
[google/4.6] For -gfission, remove address table entry when removing location list entry (issue5900045)
2012-03-23 Cary Coutant * dwarf2out.c (resolve_addr): Remove address table entry for symbol when removing location list entry. Index: dwarf2out.c === --- dwarf2out.c (revision 185594) +++ dwarf2out.c (working copy) @@ -23803,11 +23803,15 @@ resolve_addr (dw_die_ref die) if (!resolve_addr_in_expr ((*curr)->expr)) { dw_loc_list_ref next = (*curr)->dw_loc_next; + dw_loc_descr_ref l = (*curr)->expr; + if (next && (*curr)->ll_symbol) { gcc_assert (!next->ll_symbol); next->ll_symbol = (*curr)->ll_symbol; } + if (l->dw_loc_oprnd1.val_index != -1U) + remove_addr_table_entry (l->dw_loc_oprnd1.val_index); *curr = next; } else -- This patch is available for review at http://codereview.appspot.com/5900045