File tree 1 file changed +16
-7
lines changed
compiler/rustc_ty_utils/src
1 file changed +16
-7
lines changed Original file line number Diff line number Diff line change @@ -480,13 +480,22 @@ fn fn_abi_sanity_check<'tcx>(
480
480
// The unstable abi `PtxKernel` also uses Direct for now.
481
481
// It needs to switch to something else before stabilization can happen.
482
482
// (See issue: https://github.com/rust-lang/rust/issues/117271)
483
- assert ! (
484
- matches!( & * tcx. sess. target. arch, "wasm32" | "wasm64" )
485
- || matches!( spec_abi, ExternAbi :: PtxKernel | ExternAbi :: Unadjusted ) ,
486
- "`PassMode::Direct` for aggregates only allowed for \" unadjusted\" and \" ptx-kernel\" functions and on wasm\n \
487
- Problematic type: {:#?}",
488
- arg. layout,
489
- ) ;
483
+
484
+ match spec_abi {
485
+ // The unadjusted ABI is ill specified, but unfortunately we need it for
486
+ // calling certain LLVM intrinsics.
487
+ ExternAbi :: Unadjusted => { }
488
+ ExternAbi :: PtxKernel => { }
489
+ ExternAbi :: C { unwind : _ }
490
+ if matches ! ( & * tcx. sess. target. arch, "wasm32" | "wasm64" ) => { }
491
+ _ => {
492
+ panic ! (
493
+ "`PassMode::Direct` for aggregates only allowed for \" unadjusted\" and \" ptx-kernel\" functions and on wasm\n \
494
+ Problematic type: {:#?}",
495
+ arg. layout,
496
+ ) ;
497
+ }
498
+ }
490
499
}
491
500
}
492
501
}
You can’t perform that action at this time.
0 commit comments