2012-03-23   Cary Coutant  <ccout...@google.com>

        * 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

Reply via email to