re PR debug/77985 (DW_AT_comp_dir is omitted when filename is absolute and the file...
authorXimin Luo <infinity0@pwned.gg>
Mon, 24 Oct 2016 11:57:27 +0000 (12:57 +0100)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 24 Oct 2016 11:57:27 +0000 (11:57 +0000)
2016-10-24  Ximin Luo  <infinity0@pwned.gg>

PR debug/77985
* dwarf2out.c (file_table_relative_p): Remove.
(gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
also for absolute paths.
* doc/tm.texi: Update.
* doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
* target.def (force_at_comp_dir): Remove hook.
* config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.

From-SVN: r241473

gcc/ChangeLog
gcc/config/darwin.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/dwarf2out.c
gcc/target.def

index e8ddeb014f209a36df91bd0809431f438e24842a..f050a17c17a2616271c256607c9d03447036bc6c 100644 (file)
@@ -1,3 +1,14 @@
+2016-10-24  Ximin Luo  <infinity0@pwned.gg>
+
+       PR debug/77985
+       * dwarf2out.c (file_table_relative_p): Remove.
+       (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
+       also for absolute paths.
+       * doc/tm.texi: Update.
+       * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
+       * target.def (force_at_comp_dir): Remove hook.
+       * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
+
 2016-10-24  Richard Biener  <rguenther@suse.de>
 
        * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
index b16fec89cdf8fbed3404479ac35ce4a5b79866bf..98d2382009db113d2ea05586e9b804f1f3fabd94 100644 (file)
@@ -424,8 +424,6 @@ extern GTY(()) int darwin_ms_struct;
 
 #define TARGET_WANT_DEBUG_PUB_SECTIONS true
 
-#define TARGET_FORCE_AT_COMP_DIR true
-
 /* When generating stabs debugging, use N_BINCL entries.  */
 
 #define DBX_USE_BINCL
index 29dc73b6764948866249d5931c843ecc1345524b..cffcfe9cca92b9cd8233f1657ec3dcbb40198297 100644 (file)
@@ -9784,10 +9784,6 @@ tables, and hence is desirable if it works.
 True if the @code{.debug_pubtypes} and @code{.debug_pubnames} sections should be emitted.  These sections are not used on most platforms, and in particular GDB does not use them.
 @end deftypevr
 
-@deftypevr {Target Hook} bool TARGET_FORCE_AT_COMP_DIR
-True if the @code{DW_AT_comp_dir} attribute should be emitted for each  compilation unit.  This attribute is required for the darwin linker  to emit debug information.
-@end deftypevr
-
 @deftypevr {Target Hook} bool TARGET_DELAY_SCHED2
 True if sched2 is not to be run at its normal place.
 This usually means it will be run as part of machine-specific reorg.
index efcd7416e4e922cc2af485990ccc7d31fa94db3b..d2dd45fdea6432151366f51bb11446a49bebb737 100644 (file)
@@ -7084,8 +7084,6 @@ tables, and hence is desirable if it works.
 
 @hook TARGET_WANT_DEBUG_PUB_SECTIONS
 
-@hook TARGET_FORCE_AT_COMP_DIR
-
 @hook TARGET_DELAY_SCHED2
 
 @hook TARGET_DELAY_VARTRACK
index 4683e1c3826f3e76c4f2993efecdac206e075a91..b059ed2a3ee32143675a6cf82e3ee3e2c76dd647 100644 (file)
@@ -22005,7 +22005,7 @@ gen_compile_unit_die (const char *filename)
     {
       add_name_attribute (die, filename);
       /* Don't add cwd for <built-in>.  */
-      if (!IS_ABSOLUTE_PATH (filename) && filename[0] != '<')
+      if (filename[0] != '<')
        add_comp_dir_attribute (die);
     }
 
@@ -26368,20 +26368,6 @@ prune_unused_types (void)
     prune_unmark_dies (ctnode->root_die);
 }
 
-/* Set the parameter to true if there are any relative pathnames in
-   the file table.  */
-int
-file_table_relative_p (dwarf_file_data **slot, bool *p)
-{
-  struct dwarf_file_data *d = *slot;
-  if (!IS_ABSOLUTE_PATH (d->filename))
-    {
-      *p = true;
-      return 0;
-    }
-  return 1;
-}
-
 /* Helpers to manipulate hash table of comdat type units.  */
 
 struct comdat_type_hasher : nofree_ptr_hash <comdat_type_node>
@@ -28195,15 +28181,7 @@ dwarf2out_early_finish (const char *filename)
   /* Add the name for the main input file now.  We delayed this from
      dwarf2out_init to avoid complications with PCH.  */
   add_name_attribute (comp_unit_die (), remap_debug_filename (filename));
-  if (!IS_ABSOLUTE_PATH (filename) || targetm.force_at_comp_dir)
-    add_comp_dir_attribute (comp_unit_die ());
-  else if (get_AT (comp_unit_die (), DW_AT_comp_dir) == NULL)
-    {
-      bool p = false;
-      file_table->traverse<bool *, file_table_relative_p> (&p);
-      if (p)
-       add_comp_dir_attribute (comp_unit_die ());
-    }
+  add_comp_dir_attribute (comp_unit_die ());
 
   /* With LTO early dwarf was really finished at compile-time, so make
      sure to adjust the phase after annotating the LTRANS CU DIE.  */
index 29d1f81fa0d7a2f38c4b33814b864b0b85d2e563..20def246043350e38b1a9ffa923ba1c4748c912b 100644 (file)
@@ -6056,13 +6056,6 @@ DEFHOOKPOD
  in particular GDB does not use them.",
  bool, false)
 
-DEFHOOKPOD
-(force_at_comp_dir,
- "True if the @code{DW_AT_comp_dir} attribute should be emitted for each \
- compilation unit.  This attribute is required for the darwin linker \
- to emit debug information.",
- bool, false)
-
 DEFHOOKPOD
 (delay_sched2, "True if sched2 is not to be run at its normal place.\n\
 This usually means it will be run as part of machine-specific reorg.",