Commit cb9e9d8d by Jason Merrill Committed by Jason Merrill

dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl for the abstract…

dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl for the abstract instance of an inline function.

        * dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl
        for the abstract instance of an inline function.

From-SVN: r39137
parent 20342a6b
2001-01-19 Jason Merrill <jason@redhat.com>
* dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl
for the abstract instance of an inline function.
Fri Jan 19 14:31:35 2001 Alexandre Oliva <aoliva@redhat.com>, J"orn Rennecke <amylaar@redhat.com> Fri Jan 19 14:31:35 2001 Alexandre Oliva <aoliva@redhat.com>, J"orn Rennecke <amylaar@redhat.com>
* reload1.c (move2add_note_store): Treat all registers directly or * reload1.c (move2add_note_store): Treat all registers directly or
......
...@@ -9868,12 +9868,11 @@ gen_subprogram_die (decl, context_die) ...@@ -9868,12 +9868,11 @@ gen_subprogram_die (decl, context_die)
/* If the definition comes from the same place as the declaration, /* If the definition comes from the same place as the declaration,
maybe use the old DIE. We always want the DIE for this function maybe use the old DIE. We always want the DIE for this function
that has the *_pc attributes to be under comp_unit_die so the that has the *_pc attributes to be under comp_unit_die so the
debugger can find it. For inlines, that is the concrete instance, debugger can find it. We also need to do this for abstract
so we can use the old DIE here. For non-inline methods, we want a instances of inlines, since the spec requires the out-of-line copy
specification DIE at toplevel, so we need a new DIE. For local to have the same parent. For local class methods, this doesn't
class methods, this doesn't apply; we just use the old DIE. */ apply; we just use the old DIE. */
if ((DECL_ABSTRACT (decl) || old_die->die_parent == comp_unit_die if ((old_die->die_parent == comp_unit_die || context_die == NULL)
|| context_die == NULL)
&& (DECL_ARTIFICIAL (decl) && (DECL_ARTIFICIAL (decl)
|| (get_AT_unsigned (old_die, DW_AT_decl_file) == file_index || (get_AT_unsigned (old_die, DW_AT_decl_file) == file_index
&& (get_AT_unsigned (old_die, DW_AT_decl_line) && (get_AT_unsigned (old_die, DW_AT_decl_line)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment