From ac5272b3c7cd929b2144cfc244271e6e3d1d64ee Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Sat, 10 Apr 2021 13:48:06 +0100 Subject: [PATCH 1/3] Use RealFileName for Session::working_dir as it may also be remapped --- src/debuginfo/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/debuginfo/mod.rs b/src/debuginfo/mod.rs index dc8bc8d9cb741..10d3651789b3a 100644 --- a/src/debuginfo/mod.rs +++ b/src/debuginfo/mod.rs @@ -64,7 +64,7 @@ impl<'tcx> DebugContext<'tcx> { // FIXME: how to get version when building out of tree? // Normally this would use option_env!("CFG_VERSION"). let producer = format!("cg_clif (rustc {})", "unknown version"); - let comp_dir = tcx.sess.working_dir.0.to_string_lossy().into_owned(); + let comp_dir = tcx.sess.working_dir.stable_name().to_string_lossy().into_owned(); let (name, file_info) = match tcx.sess.local_crate_source_file.clone() { Some(path) => { let name = path.to_string_lossy().into_owned(); From 5de83e7bd1929d6e18c19dc4430bdcececc905c2 Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Wed, 14 Apr 2021 14:12:39 +0100 Subject: [PATCH 2/3] Revamp RealFileName public methods --- src/debuginfo/line_info.rs | 2 +- src/debuginfo/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/debuginfo/line_info.rs b/src/debuginfo/line_info.rs index 8578ab33ced68..b3f700bc46794 100644 --- a/src/debuginfo/line_info.rs +++ b/src/debuginfo/line_info.rs @@ -66,7 +66,7 @@ fn line_program_add_file( ) -> FileId { match &file.name { FileName::Real(path) => { - let (dir_path, file_name) = split_path_dir_and_file(path.stable_name()); + let (dir_path, file_name) = split_path_dir_and_file(path.remapped_path_if_available()); let dir_name = osstr_as_utf8_bytes(dir_path.as_os_str()); let file_name = osstr_as_utf8_bytes(file_name); diff --git a/src/debuginfo/mod.rs b/src/debuginfo/mod.rs index 10d3651789b3a..61e54a76f29ba 100644 --- a/src/debuginfo/mod.rs +++ b/src/debuginfo/mod.rs @@ -64,7 +64,7 @@ impl<'tcx> DebugContext<'tcx> { // FIXME: how to get version when building out of tree? // Normally this would use option_env!("CFG_VERSION"). let producer = format!("cg_clif (rustc {})", "unknown version"); - let comp_dir = tcx.sess.working_dir.stable_name().to_string_lossy().into_owned(); + let comp_dir = tcx.sess.working_dir.to_string_lossy(false).into_owned(); let (name, file_info) = match tcx.sess.local_crate_source_file.clone() { Some(path) => { let name = path.to_string_lossy().into_owned(); From e162eeb1f0492822cc810decee23d6d9b9c084f0 Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Mon, 19 Apr 2021 23:27:02 +0100 Subject: [PATCH 3/3] Use local and remapped paths where appropriate --- src/common.rs | 4 +++- src/debuginfo/line_info.rs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/common.rs b/src/common.rs index 92e4435565ee7..c12d6d0f14143 100644 --- a/src/common.rs +++ b/src/common.rs @@ -334,7 +334,9 @@ impl<'tcx> FunctionCx<'_, '_, 'tcx> { let topmost = span.ctxt().outer_expn().expansion_cause().unwrap_or(span); let caller = self.tcx.sess.source_map().lookup_char_pos(topmost.lo()); let const_loc = self.tcx.const_caller_location(( - rustc_span::symbol::Symbol::intern(&caller.file.name.to_string()), + rustc_span::symbol::Symbol::intern( + &caller.file.name.prefer_remapped().to_string_lossy(), + ), caller.line as u32, caller.col_display as u32 + 1, )); diff --git a/src/debuginfo/line_info.rs b/src/debuginfo/line_info.rs index b3f700bc46794..9eb067706309e 100644 --- a/src/debuginfo/line_info.rs +++ b/src/debuginfo/line_info.rs @@ -87,7 +87,7 @@ fn line_program_add_file( filename => { let dir_id = line_program.default_directory(); let dummy_file_name = LineString::new( - filename.to_string().into_bytes(), + filename.prefer_remapped().to_string().into_bytes(), line_program.encoding(), line_strings, );