dwarf2out var loc handling fix

H.J. Lu hjl.tools@gmail.com
Tue Jan 12 23:36:00 GMT 2010


On Mon, Sep 21, 2009 at 3:41 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> when outputting debug info for function in .final, we first populate our
> location lists hashtable and then we start expanding scope block.  When
> hitting scope block of inline function we call
> dwarf2out_abstract_function that nullifies the hashtable.  This causes
> us to lose most of location info in any function with some inlines.
>
> It is neccesary to avoid inline abstract function to reffer to the
> hashtable or the locations would be output in abstract function that is
> wrong.  This patch avoids it by setting the hashtable to NULL and
> restoring it at exit and modifying lookup_decl_loc.
>
> THe patch increases amount of variables tracked in tramp3d from 4900 to
> 16000.
>
> Bootstrapped/regtested x86_64-linux, OK?
>
> Honza
>
>        * gcc.dg/guality/inline-params.c: New testcase.
>
>        * dwarf2out.c (lookup_decl_loc): Allow decl_loc_table to be NULL.
>        (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
>        restore at the end.

This caused:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42715


-- 
H.J.



More information about the Gcc-patches mailing list