Commit 9bdca184 by Alexandre Oliva Committed by Alexandre Oliva

re PR fortran/11522 (g77 dwarf-2 ICE in add_abstract_origin_attribute)

PR fortran/11522
* dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function
for ultimate origin even if block is abstract.

From-SVN: r71301
parent aa166939
2003-09-11 Alexandre Oliva <aoliva@redhat.com>
PR fortran/11522
* dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function
for ultimate origin even if block is abstract.
2003-09-11 Roger Sayle <roger@eyesopen.com> 2003-09-11 Roger Sayle <roger@eyesopen.com>
* combine.c (combine_simplify_rtx): Move several NOT and NEG * combine.c (combine_simplify_rtx): Move several NOT and NEG
......
...@@ -10990,16 +10990,20 @@ gen_lexical_block_die (tree stmt, dw_die_ref context_die, int depth) ...@@ -10990,16 +10990,20 @@ gen_lexical_block_die (tree stmt, dw_die_ref context_die, int depth)
static void static void
gen_inlined_subroutine_die (tree stmt, dw_die_ref context_die, int depth) gen_inlined_subroutine_die (tree stmt, dw_die_ref context_die, int depth)
{ {
tree decl = block_ultimate_origin (stmt);
/* Emit info for the abstract instance first, if we haven't yet. We
must emit this even if the block is abstract, otherwise when we
emit the block below (or elsewhere), we may end up trying to emit
a die whose origin die hasn't been emitted, and crashing. */
dwarf2out_abstract_function (decl);
if (! BLOCK_ABSTRACT (stmt)) if (! BLOCK_ABSTRACT (stmt))
{ {
dw_die_ref subr_die dw_die_ref subr_die
= new_die (DW_TAG_inlined_subroutine, context_die, stmt); = new_die (DW_TAG_inlined_subroutine, context_die, stmt);
tree decl = block_ultimate_origin (stmt);
char label[MAX_ARTIFICIAL_LABEL_BYTES]; char label[MAX_ARTIFICIAL_LABEL_BYTES];
/* Emit info for the abstract instance first, if we haven't yet. */
dwarf2out_abstract_function (decl);
add_abstract_origin_attribute (subr_die, decl); add_abstract_origin_attribute (subr_die, decl);
ASM_GENERATE_INTERNAL_LABEL (label, BLOCK_BEGIN_LABEL, ASM_GENERATE_INTERNAL_LABEL (label, BLOCK_BEGIN_LABEL,
BLOCK_NUMBER (stmt)); BLOCK_NUMBER (stmt));
......
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