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]

Re: PR debug/40126


On Mon, Jun 8, 2009 at 2:40 PM, Jan Hubicka<hubicka@ucw.cz> wrote:
> 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?

Yes.

Thanks,
Richard.

> 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]