Fix DWARF1/C++ abort with member function in class nested in another function.

* dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
	if pending_types is non-zero.
	(dwarfout_finish): Verify pending_types is zero before finishing.

From-SVN: r23404
This commit is contained in:
Jim Wilson 1998-10-28 14:09:31 +00:00 committed by Jim Wilson
parent 22eed1e678
commit 0a4be913a4
2 changed files with 22 additions and 4 deletions

View File

@ -1,3 +1,9 @@
Wed Oct 28 14:06:49 1998 Jim Wilson <wilson@cygnus.com>
* dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
if pending_types is non-zero.
(dwarfout_finish): Verify pending_types is zero before finishing.
Wed Oct 28 10:29:09 1998 Nick Clifton <nickc@cygnus.com>
* expr.c (convert_move): Use shifts to perform the move if a

View File

@ -5257,10 +5257,16 @@ dwarfout_file_scope_decl (decl, set_finalizing)
output_pending_types_for_scope (NULL_TREE);
/* The above call should have totally emptied the pending_types_list. */
/* The above call should have totally emptied the pending_types_list
if this is not a nested function or class. If this is a nested type,
then the remaining pending_types will be emitted when the containing type
is handled. */
if (pending_types != 0)
abort ();
if (! DECL_CONTEXT (decl))
{
if (pending_types != 0)
abort ();
}
ASM_OUTPUT_POP_SECTION (asm_out_file);
@ -6013,6 +6019,12 @@ dwarfout_finish ()
ASM_OUTPUT_POP_SECTION (asm_out_file);
}
/* There should not be any pending types left at the end. We need
this now because it may not have been checked on the last call to
dwarfout_file_scope_decl. */
if (pending_types != 0)
abort ();
}
#endif /* DWARF_DEBUGGING_INFO */