Introduce FileNameMapping::to_real_filename
and use it everywhere
This commit is contained in:
parent
ee2898d3f1
commit
4f4fa42b0e
6 changed files with 42 additions and 41 deletions
|
@ -264,10 +264,11 @@ pub fn target_machine_factory(
|
|||
Arc::new(move |config: TargetMachineFactoryConfig| {
|
||||
let path_to_cstring_helper = |path: Option<PathBuf>| -> CString {
|
||||
let path = path.unwrap_or_default();
|
||||
let path = path_mapping.to_real_filename(path);
|
||||
let path = if should_prefer_remapped_paths {
|
||||
path_mapping.map_prefix(path).0
|
||||
path.remapped_path_if_available()
|
||||
} else {
|
||||
path.into()
|
||||
path.local_path_if_available()
|
||||
};
|
||||
CString::new(path.to_str().unwrap()).unwrap()
|
||||
};
|
||||
|
|
|
@ -878,26 +878,21 @@ pub fn build_compile_unit_di_node<'ll, 'tcx>(
|
|||
.for_scope(tcx.sess, RemapPathScopeComponents::DEBUGINFO)
|
||||
.to_string_lossy();
|
||||
let output_filenames = tcx.output_filenames(());
|
||||
let split_name = if tcx.sess.target_can_use_split_dwarf() {
|
||||
output_filenames
|
||||
.split_dwarf_path(
|
||||
tcx.sess.split_debuginfo(),
|
||||
tcx.sess.opts.unstable_opts.split_dwarf_kind,
|
||||
Some(codegen_unit_name),
|
||||
)
|
||||
// We get a path relative to the working directory from split_dwarf_path
|
||||
.map(|f| {
|
||||
if tcx.sess.should_prefer_remapped(RemapPathScopeComponents::DEBUGINFO) {
|
||||
tcx.sess.source_map().path_mapping().map_prefix(f).0
|
||||
} else {
|
||||
f.into()
|
||||
}
|
||||
})
|
||||
let split_name = if tcx.sess.target_can_use_split_dwarf()
|
||||
&& let Some(f) = output_filenames.split_dwarf_path(
|
||||
tcx.sess.split_debuginfo(),
|
||||
tcx.sess.opts.unstable_opts.split_dwarf_kind,
|
||||
Some(codegen_unit_name),
|
||||
) {
|
||||
// We get a path relative to the working directory from split_dwarf_path
|
||||
Some(tcx.sess.source_map().path_mapping().to_real_filename(f))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
.unwrap_or_default();
|
||||
let split_name = split_name.to_str().unwrap();
|
||||
};
|
||||
let split_name = split_name
|
||||
.as_ref()
|
||||
.map(|f| f.for_scope(tcx.sess, RemapPathScopeComponents::DEBUGINFO).to_string_lossy())
|
||||
.unwrap_or_default();
|
||||
let kind = DebugEmissionKind::from_generic(tcx.sess.opts.debuginfo);
|
||||
|
||||
let dwarf_version =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue