This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PR debug/40126


Hi,
the problem here is that dwarf2out is called to output abstract function but
somewho it manages to find declaration in location table and produce location
list for non-existent function.

It is obiovusly wrong to have decl_loc_table populated here, but I am not sure
where is proper place to free it.  This patch just frees it at begging of
abstract function handling same wa as we free it at beggining of normal
function.

Bootstrapped/regtested x86_64-linux.
Seems sane?

Honza

	* dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
Index: dwarf2out.c
===================================================================
*** dwarf2out.c	(revision 148287)
--- dwarf2out.c	(working copy)
*************** dwarf2out_abstract_function (tree decl)
*** 13792,13797 ****
--- 13792,13798 ----
  
    /* Make sure we have the actual abstract inline, not a clone.  */
    decl = DECL_ORIGIN (decl);
+   htab_empty (decl_loc_table);
  
    old_die = lookup_decl_die (decl);
    if (old_die && get_AT (old_die, DW_AT_inline))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]