dwarf2out.c (free_AT, free_die): New fns.
authorJason Merrill <jason@casey.cygnus.com>
Thu, 25 Nov 1999 02:36:40 +0000 (02:36 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 25 Nov 1999 02:36:40 +0000 (21:36 -0500)
commit10a11b75613b5fc2d7fb49cadea8825ab283d745
treeb8d824a990ecfa26f4e85b6a58fd25bf6211beab
parent50e159f65532eb334dc2b12210acdc9ab0f334cf
dwarf2out.c (free_AT, free_die): New fns.

        * dwarf2out.c (free_AT, free_die): New fns.
        (remove_children): Call them.
        (output_line_info): Disable removal of duplicate notes.

        Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
        * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
        means pretend the type isn't defined.
        Don't defer emitting types.
        (gen_type_die_for_member): New fn.
        (gen_decl_die): Call it.
        (splice_child_die): New fn.
        (gen_member_die): Call it rather than generate duplicate dies.

        Defer emitting information for the abstract instance of an inline
        until we either inline it or emit an out-of-line copy.
        * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
        from output_inline_function if DECL_ABSTRACT is also set.
        (block_ultimate_origin): Likewise.
        (gen_abstract_function): New fn.
        (gen_decl_die, gen_inlined_subroutine_die): Call it.
        (gen_subprogram_die):  An abstract instance is not a declaration
        just because it doesn't match current_function_decl.  Don't abort
        because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
        has an abstract origin.
        * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
        abstract instance here.

From-SVN: r30659
gcc/ChangeLog
gcc/dwarf2out.c
gcc/toplev.c