[gcc(refs/users/marxin/heads/opt-parse-enum-sanity)] fix -fdebug-prefix-map without gas .file support
Martin Liska
marxin@gcc.gnu.org
Tue Mar 17 15:55:28 GMT 2020
https://gcc.gnu.org/g:d12153046816f955e74943af7089d30de6a00e19
commit d12153046816f955e74943af7089d30de6a00e19
Author: Richard Biener <rguenther@suse.de>
Date: Thu Feb 27 11:42:50 2020 +0100
fix -fdebug-prefix-map without gas .file support
This applies file mapping when emitting the directory table
directly instead of using the assemblers .file directive where
we already correctly apply the map. Notably the non-assembler
path is used for the early debug emission for LTO.
2020-02-27 Mark Williams <mwilliams@fb.com>
* dwarf2out.c (file_name_acquire): Call remap_debug_filename.
* lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
-ffile-prefix-map and -fmacro-prefix-map.
* lto-streamer-out.c: Include file-prefix-map.h.
(lto_output_location): Remap the file part of locations.
Diff:
---
gcc/ChangeLog | 8 ++++++++
gcc/dwarf2out.c | 3 ++-
gcc/lto-opts.c | 3 +++
gcc/lto-streamer-out.c | 3 ++-
4 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d8cfd09daa8..beb56bc0130 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2020-02-27 Mark Williams <mwilliams@fb.com>
+
+ * dwarf2out.c (file_name_acquire): Call remap_debug_filename.
+ * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
+ -ffile-prefix-map and -fmacro-prefix-map.
+ * lto-streamer-out.c: Include file-prefix-map.h.
+ (lto_output_location): Remap the file part of locations.
+
2020-02-27 Jakub Jelinek <jakub@redhat.com>
PR c/93949
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 1fcb19a0489..bb45279ea56 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -12101,8 +12101,9 @@ file_name_acquire (dwarf_file_data **slot, file_name_acquire_data *fnad)
fi = fnad->files + fnad->used_files++;
+ f = remap_debug_filename (d->filename);
+
/* Skip all leading "./". */
- f = d->filename;
while (f[0] == '.' && IS_DIR_SEPARATOR (f[1]))
f += 2;
diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c
index 87e916a2741..2512560cc6d 100644
--- a/gcc/lto-opts.c
+++ b/gcc/lto-opts.c
@@ -131,6 +131,9 @@ lto_write_options (void)
case OPT_SPECIAL_input_file:
case OPT_dumpdir:
case OPT_fresolution_:
+ case OPT_fdebug_prefix_map_:
+ case OPT_ffile_prefix_map_:
+ case OPT_fmacro_prefix_map_:
continue;
default:
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 1faf31c0551..cea5e71cffb 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see
#include "omp-offload.h"
#include "print-tree.h"
#include "tree-dfa.h"
+#include "file-prefix-map.h" /* remap_debug_filename() */
static void lto_write_tree (struct output_block*, tree, bool);
@@ -200,7 +201,7 @@ lto_output_location (struct output_block *ob, struct bitpack_d *bp,
if (ob->current_file != xloc.file)
{
- bp_pack_string (ob, bp, xloc.file, true);
+ bp_pack_string (ob, bp, remap_debug_filename (xloc.file), true);
bp_pack_value (bp, xloc.sysp, 1);
}
ob->current_file = xloc.file;
More information about the Gcc-cvs
mailing list