From 5f632b5e7a2d76b3c04f2db536ffeb4c278a8466 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 29 Aug 2000 01:35:32 -0400 Subject: [PATCH] dwarf2out.c (attr_checksum): Also ignore DW_AT_producer. * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer. * dwarf2out.c (dwarf2out_finish): Don't bother calling break_out_includes if it won't do anything. From-SVN: r36030 --- gcc/ChangeLog | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ gcc/dwarf2out.c | 8 +++++-- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bec85cd990a..8f214f95db5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2000-08-28 Jason Merrill + + * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer. + +2000-08-28 Daniel Berlin + + * dwarf2out.c (dwarf2out_finish): Don't bother calling + break_out_includes if it won't do anything. + 2000-08-28 Richard Henderson * reload.c (push_secondary_reload): Revert 2000-08-16 change. @@ -29,8 +38,56 @@ * md.texi: Update constraints documentation. * tm.texi (EXTRA_CONSTRAINT): Update. +2000-08-28 Daniel Berlin + + * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__". + (print_die): If we don't know the offset of the + target die, try the symbol. Add a trailing newline. + (reverse_all_dies): New fn. + (dwarf2out_finish): Call it. + (break_out_includes): Reorganize for clarity. + (add_sibling_attributes): Don't call reverse_die_lists. + (output_comp_unit): Rename from output_comdat_comp_unit. Use for + primary CU, too. + * flags.h: Add flag_eliminate_dwarf2_dups. + * toplev.c (f_options): Support -feliminate-dwarf2-dups. + 2000-08-28 Jason Merrill + * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags. + * dwarf2out.c: #include "md5.h". + (DIE_LABEL_PREFIX): New macro. + (dw_val_struct): Add 'external' flag to val_die_ref. + (add_AT_die_ref, AT_ref): Adjust. + (AT_ref_external, set_AT_ref_external): New fns. + (build_abbrev_table): Call set_AT_ref_external. + (value_format): Call AT_ref_external. + (die_struct): Add die_symbol field. + (new_die): Clear it. + (dwarf_tag_name): Handle BINCL/EINCL. + (dwarf2out_start_source_file): Add BINCL DIE. + (dwarf2out_end_source_file): Add EINCL DIE. + (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns. + (loc_checksum, attr_checksum, die_checksum): New fns. + (is_type_die, is_comdat_die, is_symbol_die): New fns. + (compute_section_prefix, assign_symbol_names): New fns. + (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns. + (output_die): Call output_die_symbol and AT_ref_external. + (output_comdat_comp_unit): New fn, split out from... + (dwarf2out_finish): ...here. Also call add_sibling_attributes for + secondary CUs. + (output_pubnames, output_aranges): Abort if we see entries from + secondary CUs. + * toplev.h: Declare file_name_nondirectory. + * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend. + (rest_of_type_compilation): Call dwarf2out_decl if at toplevel. + (debug_start_source_file): Call dwarf2out_start_source_file + regardless of debug verbosity. + (debug_end_source_file): Similarly. + * tree.h: Declare clean_symbol_name. + * tree.c (clean_symbol_name): Split out from... + (get_file_function_name_long): ...here. + * dwarf2out.c (new_loc_descr): Use calloc. (splice_child_die): Remove the die from the right parent. (gen_struct_or_union_die): Don't add AT_name to a specification DIE. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 69e03955704..de81db03ce5 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -5054,7 +5054,10 @@ attr_checksum (at, ctx) PROCESS (at->dw_attr); /* We don't care about differences in file numbering. */ - if (at->dw_attr == DW_AT_decl_file) + if (at->dw_attr == DW_AT_decl_file + /* Or that this was compiled with a different compiler snapshot; if + the output is the same, that's what matters. */ + || at->dw_attr == DW_AT_producer) return; switch (AT_class (at)) @@ -10841,7 +10844,8 @@ dwarf2out_finish () /* Generate separate CUs for each of the include files we've seen. They will go into limbo_die_list. */ - break_out_includes (comp_unit_die); + if (flag_eliminate_dwarf2_dups) + break_out_includes (comp_unit_die); /* Traverse the DIE's and add add sibling attributes to those DIE's that have children. */ -- 2.30.2