From cc29afdfbdff8231604fa15ef0a0793ee56c45ad Mon Sep 17 00:00:00 2001 From: Christopher Durham Date: Thu, 28 Apr 2022 06:07:16 -0500 Subject: [PATCH 1/2] Provide fnptr impls for extern "system" --- library/core/src/ptr/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/core/src/ptr/mod.rs b/library/core/src/ptr/mod.rs index ba8b0670147ae..0eb10a0967d3f 100644 --- a/library/core/src/ptr/mod.rs +++ b/library/core/src/ptr/mod.rs @@ -1851,16 +1851,20 @@ macro_rules! fnptr_impls_args { fnptr_impls_safety_abi! { extern "Rust" fn($($Arg),+) -> Ret, $($Arg),+ } fnptr_impls_safety_abi! { extern "C" fn($($Arg),+) -> Ret, $($Arg),+ } fnptr_impls_safety_abi! { extern "C" fn($($Arg),+ , ...) -> Ret, $($Arg),+ } + fnptr_impls_safety_abi! { extern "system" fn($($Arg),+) -> Ret, $($Arg),+ } fnptr_impls_safety_abi! { unsafe extern "Rust" fn($($Arg),+) -> Ret, $($Arg),+ } fnptr_impls_safety_abi! { unsafe extern "C" fn($($Arg),+) -> Ret, $($Arg),+ } fnptr_impls_safety_abi! { unsafe extern "C" fn($($Arg),+ , ...) -> Ret, $($Arg),+ } + fnptr_impls_safety_abi! { unsafe extern "system" fn($($Arg),+) -> Ret, $($Arg),+ } }; () => { // No variadic functions with 0 parameters fnptr_impls_safety_abi! { extern "Rust" fn() -> Ret, } fnptr_impls_safety_abi! { extern "C" fn() -> Ret, } + fnptr_impls_safety_abi! { extern "system" fn() -> Ret, } fnptr_impls_safety_abi! { unsafe extern "Rust" fn() -> Ret, } fnptr_impls_safety_abi! { unsafe extern "C" fn() -> Ret, } + fnptr_impls_safety_abi! { unsafe extern "system" fn() -> Ret, } }; } From 31c88d2b648ad14b2c52388ea7a7be8351b5d6e8 Mon Sep 17 00:00:00 2001 From: CAD97 Date: Thu, 28 Apr 2022 07:43:35 -0500 Subject: [PATCH 2/2] bless --- src/test/ui/binop/issue-77910-1.stderr | 2 +- src/test/ui/issues/issue-59488.stderr | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/ui/binop/issue-77910-1.stderr b/src/test/ui/binop/issue-77910-1.stderr index 95ee51a88261a..c6b892a509680 100644 --- a/src/test/ui/binop/issue-77910-1.stderr +++ b/src/test/ui/binop/issue-77910-1.stderr @@ -25,7 +25,7 @@ LL | assert_eq!(foo, y); extern "C" fn(A, B, C) -> Ret extern "C" fn(A, B, C, ...) -> Ret extern "C" fn(A, B, C, D) -> Ret - and 68 others + and 94 others = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) error: aborting due to 2 previous errors diff --git a/src/test/ui/issues/issue-59488.stderr b/src/test/ui/issues/issue-59488.stderr index 76a47c49bbafb..49c5527fa06bc 100644 --- a/src/test/ui/issues/issue-59488.stderr +++ b/src/test/ui/issues/issue-59488.stderr @@ -103,7 +103,7 @@ LL | assert_eq!(Foo::Bar, i); extern "C" fn(A, B, C) -> Ret extern "C" fn(A, B, C, ...) -> Ret extern "C" fn(A, B, C, D) -> Ret - and 68 others + and 94 others = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) error: aborting due to 9 previous errors