diff options
| author | Michael Goulet <michael@errs.io> | 2024-10-08 16:46:00 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-10-08 16:46:16 -0400 |
| commit | 17eca60c2432d4b140ec0dca441cc6fde6562698 (patch) | |
| tree | e77a27308b82cb1b1b3265b03a9043c8afe5b859 /compiler/rustc_codegen_llvm/src | |
| parent | 6a3c45e1c65e61b298fd6eaceac6d8ef4d973b66 (diff) | |
| download | rust-17eca60c2432d4b140ec0dca441cc6fde6562698.tar.gz rust-17eca60c2432d4b140ec0dca441cc6fde6562698.zip | |
Dont ICE when encountering post-mono layout cycle error
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/context.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs index 81b82840472..0a116971e07 100644 --- a/compiler/rustc_codegen_llvm/src/context.rs +++ b/compiler/rustc_codegen_llvm/src/context.rs @@ -1187,10 +1187,11 @@ impl<'tcx> FnAbiOfHelpers<'tcx> for CodegenCx<'_, 'tcx> { span: Span, fn_abi_request: FnAbiRequest<'tcx>, ) -> ! { - if let FnAbiError::Layout(LayoutError::SizeOverflow(_)) = err { - self.tcx.dcx().emit_fatal(Spanned { span, node: err }) - } else { - match fn_abi_request { + match err { + FnAbiError::Layout(LayoutError::SizeOverflow(_) | LayoutError::Cycle(_)) => { + self.tcx.dcx().emit_fatal(Spanned { span, node: err }); + } + _ => match fn_abi_request { FnAbiRequest::OfFnPtr { sig, extra_args } => { span_bug!(span, "`fn_abi_of_fn_ptr({sig}, {extra_args:?})` failed: {err:?}",); } @@ -1200,7 +1201,7 @@ impl<'tcx> FnAbiOfHelpers<'tcx> for CodegenCx<'_, 'tcx> { "`fn_abi_of_instance({instance}, {extra_args:?})` failed: {err:?}", ); } - } + }, } } } |
