Turn the "no saved object file in work product" ICE into a translatable fatal error

This commit is contained in:
Ben Kimock 2024-02-09 20:22:15 -05:00
parent f4cfd87202
commit 3d4a9f5047
3 changed files with 11 additions and 1 deletions

View File

@ -190,6 +190,8 @@ codegen_ssa_no_module_named =
codegen_ssa_no_natvis_directory = error enumerating natvis directory: {$error} codegen_ssa_no_natvis_directory = error enumerating natvis directory: {$error}
codegen_ssa_no_saved_object_file = cached cgu {$cgu_name} should have an object file, but doesn't
codegen_ssa_processing_dymutil_failed = processing debug info with `dsymutil` failed: {$status} codegen_ssa_processing_dymutil_failed = processing debug info with `dsymutil` failed: {$status}
.note = {$output} .note = {$output}

View File

@ -913,7 +913,9 @@ fn execute_copy_from_cache_work_item<B: ExtraBackendMethods>(
let object = load_from_incr_comp_dir( let object = load_from_incr_comp_dir(
cgcx.output_filenames.temp_path(OutputType::Object, Some(&module.name)), cgcx.output_filenames.temp_path(OutputType::Object, Some(&module.name)),
module.source.saved_files.get("o").expect("no saved object file in work product"), module.source.saved_files.get("o").unwrap_or_else(|| {
cgcx.create_dcx().emit_fatal(errors::NoSavedObjectFile { cgu_name: &module.name })
}),
); );
let dwarf_object = let dwarf_object =
module.source.saved_files.get("dwo").as_ref().and_then(|saved_dwarf_object_file| { module.source.saved_files.get("dwo").as_ref().and_then(|saved_dwarf_object_file| {

View File

@ -121,6 +121,12 @@ pub struct NoNatvisDirectory {
pub error: Error, pub error: Error,
} }
#[derive(Diagnostic)]
#[diag(codegen_ssa_no_saved_object_file)]
pub struct NoSavedObjectFile<'a> {
pub cgu_name: &'a str,
}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(codegen_ssa_copy_path_buf)] #[diag(codegen_ssa_copy_path_buf)]
pub struct CopyPathBuf { pub struct CopyPathBuf {