dwarf2out.c (add_abstract_origin_attribute): Don't call gen_abstract_function on our context if we're a nested function.

* dwarf2out.c (add_abstract_origin_attribute): Don't call
        gen_abstract_function on our context if we're a nested function.

From-SVN: r31798
This commit is contained in:
Jason Merrill 2000-02-04 23:46:13 +00:00 committed by Jason Merrill
parent a5fa648417
commit e40a1c6765
2 changed files with 17 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2000-02-04 Jason Merrill <jason@casey.cygnus.com>
* dwarf2out.c (add_abstract_origin_attribute): Don't call
gen_abstract_function on our context if we're a nested function.
2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.

View File

@ -7374,12 +7374,18 @@ add_abstract_origin_attribute (die, origin)
{
dw_die_ref origin_die = NULL;
/* We may have gotten separated from the block for the inlined
function, if we're in an exception handler or some such; make
sure that the abstract function has been written out. */
tree fn = decl_function_context (origin);
if (fn)
gen_abstract_function (fn);
if (die->die_tag != DW_TAG_subprogram)
{
/* We may have gotten separated from the block for the inlined
function, if we're in an exception handler or some such; make
sure that the abstract function has been written out.
Doing this for nested functions is wrong, however; functions are
distinct units, and our context might not even be inline. */
tree fn = decl_function_context (origin);
if (fn)
gen_abstract_function (fn);
}
if (TREE_CODE_CLASS (TREE_CODE (origin)) == 'd')
origin_die = lookup_decl_die (origin);