diff options
| author | bors <bors@rust-lang.org> | 2024-04-16 19:52:48 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-04-16 19:52:48 +0000 |
| commit | 1cec373f65eb76e8e4b4d1847213cf3ec6c292b6 (patch) | |
| tree | 043e5fb90ab4a2bb4d9963f49fd610e517fc5928 /compiler/rustc_codegen_ssa/src/back | |
| parent | 468f1156843c35af624304c44b0ea0cf0a7777d4 (diff) | |
| parent | 7709b7d44a99e52ef8818b3690aa2a3531b86707 (diff) | |
| download | rust-1cec373f65eb76e8e4b4d1847213cf3ec6c292b6.tar.gz rust-1cec373f65eb76e8e4b4d1847213cf3ec6c292b6.zip | |
Auto merge of #124034 - GuillaumeGomez:rollup-ayztp9l, r=GuillaumeGomez
Rollup of 7 pull requests Successful merges: - #122811 (Move `SourceMap` initialization) - #123512 (Match ergonomics 2024: Implement eat-one-layer) - #123811 (Use queue-based `RwLock` on more platforms) - #123859 (Remove uneeded clones now that TrustedStep implies Copy) - #123979 (Subtype predicates only exist on inference types, so we can allow them to register opaque types within them.) - #124016 (Outline default query and hook provider function implementations) - #124023 (Allow workproducts without object files.) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/write.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs index e7f692144ff..c4f062405bb 100644 --- a/compiler/rustc_codegen_ssa/src/back/write.rs +++ b/compiler/rustc_codegen_ssa/src/back/write.rs @@ -907,8 +907,6 @@ fn execute_copy_from_cache_work_item<B: ExtraBackendMethods>( module: CachedModuleCodegen, module_config: &ModuleConfig, ) -> WorkItemResult<B> { - assert!(module_config.emit_obj != EmitObj::None); - let incr_comp_session_dir = cgcx.incr_comp_session_dir.as_ref().unwrap(); let load_from_incr_comp_dir = |output_path: PathBuf, saved_path: &str| { @@ -928,12 +926,6 @@ fn execute_copy_from_cache_work_item<B: ExtraBackendMethods>( } }; - let object = load_from_incr_comp_dir( - cgcx.output_filenames.temp_path(OutputType::Object, Some(&module.name)), - module.source.saved_files.get("o").unwrap_or_else(|| { - cgcx.create_dcx().emit_fatal(errors::NoSavedObjectFile { cgu_name: &module.name }) - }), - ); let dwarf_object = module.source.saved_files.get("dwo").as_ref().and_then(|saved_dwarf_object_file| { let dwarf_obj_out = cgcx @@ -955,9 +947,14 @@ fn execute_copy_from_cache_work_item<B: ExtraBackendMethods>( } }; + let should_emit_obj = module_config.emit_obj != EmitObj::None; let assembly = load_from_incr_cache(module_config.emit_asm, OutputType::Assembly); let llvm_ir = load_from_incr_cache(module_config.emit_ir, OutputType::LlvmAssembly); let bytecode = load_from_incr_cache(module_config.emit_bc, OutputType::Bitcode); + let object = load_from_incr_cache(should_emit_obj, OutputType::Object); + if should_emit_obj && object.is_none() { + cgcx.create_dcx().emit_fatal(errors::NoSavedObjectFile { cgu_name: &module.name }) + } WorkItemResult::Finished(CompiledModule { name: module.name, |
