File tree Expand file tree Collapse file tree 1 file changed +17
-7
lines changed
compiler/rustc_ty_utils/src Expand file tree Collapse file tree 1 file changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -480,13 +480,23 @@ fn fn_abi_sanity_check<'tcx>(
480480 // The unstable abi `PtxKernel` also uses Direct for now.
481481 // It needs to switch to something else before stabilization can happen.
482482 // (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+ // And finally the unadjusted ABI is ill specified and uses Direct for all
485+ // args, but unfortunately we need it for calling certain LLVM intrinsics.
486+
487+ match spec_abi {
488+ ExternAbi :: Unadjusted => { }
489+ ExternAbi :: PtxKernel => { }
490+ ExternAbi :: C { unwind : _ }
491+ if matches ! ( & * tcx. sess. target. arch, "wasm32" | "wasm64" ) => { }
492+ _ => {
493+ panic ! (
494+ "`PassMode::Direct` for aggregates only allowed for \" unadjusted\" and \" ptx-kernel\" functions and on wasm\n \
495+ Problematic type: {:#?}",
496+ arg. layout,
497+ ) ;
498+ }
499+ }
490500 }
491501 }
492502 }
You can’t perform that action at this time.
0 commit comments