From 26528b969f74e6a4fa1799cac24058879aa57bc4 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 14 Jul 2019 11:58:12 +0200 Subject: [PATCH 1/2] RustIntrinsic and PlatformIntrinsic are also the same ABI as Rust --- src/librustc_mir/interpret/terminator.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/librustc_mir/interpret/terminator.rs b/src/librustc_mir/interpret/terminator.rs index c11e5e119237..4813186ac6ec 100644 --- a/src/librustc_mir/interpret/terminator.rs +++ b/src/librustc_mir/interpret/terminator.rs @@ -281,7 +281,13 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> { } }; // Rust and RustCall are compatible - let normalize_abi = |abi| if abi == Abi::RustCall { Abi::Rust } else { abi }; + let normalize_abi = |abi| match abi { + Abi::Rust | Abi::RustCall | Abi::RustIntrinsic | Abi::PlatformIntrinsic => + // These are all the same ABI, really. + Abi::Rust, + abi => + abi, + }; if normalize_abi(caller_abi) != normalize_abi(callee_abi) { return err!(FunctionAbiMismatch(caller_abi, callee_abi)); } From 6c293d8101618e0d3467a69adb3fb49a802de45d Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 14 Jul 2019 12:23:52 +0200 Subject: [PATCH 2/2] remove outdated comment --- src/librustc_mir/interpret/terminator.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/librustc_mir/interpret/terminator.rs b/src/librustc_mir/interpret/terminator.rs index 4813186ac6ec..75690b4d361c 100644 --- a/src/librustc_mir/interpret/terminator.rs +++ b/src/librustc_mir/interpret/terminator.rs @@ -280,7 +280,6 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> { _ => bug!("unexpected callee ty: {:?}", instance_ty), } }; - // Rust and RustCall are compatible let normalize_abi = |abi| match abi { Abi::Rust | Abi::RustCall | Abi::RustIntrinsic | Abi::PlatformIntrinsic => // These are all the same ABI, really.