diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-07-20 11:48:11 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-07-31 16:20:18 +1000 |
| commit | fd017d3c170796790755441dbb95020b13fd5549 (patch) | |
| tree | b41bbee4172cfb0a19c7a97c6cfdbae98af955ca /compiler/rustc_codegen_ssa/src | |
| parent | 4f598b852cf536a96234a1043a0af9f72d7e37e6 (diff) | |
| download | rust-fd017d3c170796790755441dbb95020b13fd5549.tar.gz rust-fd017d3c170796790755441dbb95020b13fd5549.zip | |
Add some assertions.
- Thin and fat LTO can't happen together. - `NeedsLink` and (non-allocator) `Compiled` work item results can't happen together.
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/write.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs index 2ef0a7c1eac..540685bd117 100644 --- a/compiler/rustc_codegen_ssa/src/back/write.rs +++ b/compiler/rustc_codegen_ssa/src/back/write.rs @@ -1535,6 +1535,7 @@ fn start_executing_work<B: ExtraBackendMethods>( Ok(WorkItemResult::Finished(compiled_module)) => { match compiled_module.kind { ModuleKind::Regular => { + assert!(needs_link.is_empty()); compiled_modules.push(compiled_module); } ModuleKind::Allocator => { @@ -1545,14 +1546,17 @@ fn start_executing_work<B: ExtraBackendMethods>( } } Ok(WorkItemResult::NeedsLink(module)) => { + assert!(compiled_modules.is_empty()); needs_link.push(module); } Ok(WorkItemResult::NeedsFatLTO(fat_lto_input)) => { assert!(!started_lto); + assert!(needs_thin_lto.is_empty()); needs_fat_lto.push(fat_lto_input); } Ok(WorkItemResult::NeedsThinLTO(name, thin_buffer)) => { assert!(!started_lto); + assert!(needs_fat_lto.is_empty()); needs_thin_lto.push((name, thin_buffer)); } Err(Some(WorkerFatalError)) => { |
