aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2000-08-29 01:35:32 -0400
committerJason Merrill <jason@gcc.gnu.org>2000-08-29 01:35:32 -0400
commit5f632b5e7a2d76b3c04f2db536ffeb4c278a8466 (patch)
treee5cce782f315baed6d3c0a9ee6ab3cf4a45f127d /gcc
parent53dce5822381dde5e61a671806c5295ffb908cac (diff)
downloadgcc-5f632b5e7a2d76b3c04f2db536ffeb4c278a8466.zip
gcc-5f632b5e7a2d76b3c04f2db536ffeb4c278a8466.tar.gz
gcc-5f632b5e7a2d76b3c04f2db536ffeb4c278a8466.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog57
-rw-r--r--gcc/dwarf2out.c8
2 files changed, 63 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bec85cd..8f214f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2000-08-28 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
+
+2000-08-28 Daniel Berlin <dberlin@redhat.com>
+
+ * dwarf2out.c (dwarf2out_finish): Don't bother calling
+ break_out_includes if it won't do anything.
+
2000-08-28 Richard Henderson <rth@cygnus.com>
* 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 <dberlin@redhat.com>
+
+ * 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 <jason@redhat.com>
+ * 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 69e0395..de81db0 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. */