From f19f17e08049dd89871753a20746f3fdf2a95ffb Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 22 Feb 2000 22:04:35 +0000 Subject: [PATCH] dwarf2out.c (output_line_info): Put the marker for the end of the line number info at the actual end. * dwarf2out.c (output_line_info): Put the marker for the end of the line number info at the actual end. (gen_struct_or_union_type_die): Use decl_function_context to check for local classes. * dwarfout.c (output_type): Likewise. From-SVN: r32105 --- gcc/ChangeLog | 8 ++++++++ gcc/dwarf2out.c | 10 ++++++---- gcc/dwarfout.c | 5 ++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 34cef0f..84c5af1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2000-02-21 Jason Merrill + + * dwarf2out.c (output_line_info): Put the marker for the end of + the line number info at the actual end. + (gen_struct_or_union_type_die): Use decl_function_context + to check for local classes. + * dwarfout.c (output_type): Likewise. + Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com) * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 39b3734..6181cfb 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -2398,6 +2398,8 @@ static int get_AT_flag PARAMS ((dw_die_ref, enum dwarf_attribute)); static unsigned get_AT_unsigned PARAMS ((dw_die_ref, enum dwarf_attribute)); +static inline dw_die_ref get_AT_ref PARAMS ((dw_die_ref, + enum dwarf_attribute)); static int is_c_family PARAMS ((void)); static int is_fortran PARAMS ((void)); static void remove_AT PARAMS ((dw_die_ref, @@ -3876,7 +3878,6 @@ get_AT_unsigned (die, attr_kind) return AT_unsigned (a); } -static inline dw_die_ref get_AT_ref PARAMS ((dw_die_ref, enum dwarf_attribute)); static inline dw_die_ref get_AT_ref (die, attr_kind) dw_die_ref die; @@ -5730,8 +5731,6 @@ output_line_info () fputc ('\n', asm_out_file); } - /* Output the marker for the end of the line number info. */ - ASM_OUTPUT_LABEL (asm_out_file, ".LTEND"); ASM_OUTPUT_DWARF_DATA1 (asm_out_file, 0); if (flag_debug_asm) fprintf (asm_out_file, "\t%s DW_LNE_end_sequence", ASM_COMMENT_START); @@ -5926,6 +5925,9 @@ output_line_info () fputc ('\n', asm_out_file); } } + + /* Output the marker for the end of the line number info. */ + ASM_OUTPUT_LABEL (asm_out_file, ".LTEND"); } /* Given a pointer to a BLOCK node return non-zero if (and only if) the node @@ -8881,7 +8883,7 @@ gen_struct_or_union_type_die (type, context_die) add_AT_flag (type_die, DW_AT_declaration, 1); /* We don't need to do this for function-local types. */ - if (context_die) + if (! decl_function_context (TYPE_STUB_DECL (type))) add_incomplete_type (type); } } diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c index c6fcbe6..9474425 100644 --- a/gcc/dwarfout.c +++ b/gcc/dwarfout.c @@ -4456,9 +4456,8 @@ output_type (type, containing_scope) || TREE_CODE (TYPE_CONTEXT (type)) == NAMESPACE_DECL) && !finalizing) { - /* We can't do this for function-local types, and we don't need - to. */ - if (TREE_PERMANENT (type)) + /* We don't need to do this for function-local types. */ + if (! decl_function_context (TYPE_STUB_DECL (type))) add_incomplete_type (type); return; /* EARLY EXIT! Avoid setting TREE_ASM_WRITTEN. */ } -- 2.7.4