Add gpu-kernel calling convention

The amdgpu-kernel calling convention was reverted in commit
f6b21e90d1 due to inactivity in the amdgpu
target.

Introduce a `gpu-kernel` calling convention that translates to
`ptx_kernel` or `amdgpu_kernel`, depending on the target that rust
compiles for.
This commit is contained in:
Flakebi 2025-01-02 22:42:10 +01:00
parent bf6f8a4d32
commit e7e5202978
No known key found for this signature in database
GPG Key ID: 38E7ED984D7DCD02
29 changed files with 435 additions and 175 deletions

View File

@ -45,6 +45,9 @@ pub enum ExternAbi {
PtxKernel,
Msp430Interrupt,
X86Interrupt,
/// An entry-point function called by the GPU's host
// FIXME: should not be callable from Rust on GPU targets, is for host's use only
GpuKernel,
EfiApi,
AvrInterrupt,
AvrNonBlockingInterrupt,
@ -122,6 +125,7 @@ const AbiDatas: &[AbiData] = &[
AbiData { abi: Abi::PtxKernel, name: "ptx-kernel" },
AbiData { abi: Abi::Msp430Interrupt, name: "msp430-interrupt" },
AbiData { abi: Abi::X86Interrupt, name: "x86-interrupt" },
AbiData { abi: Abi::GpuKernel, name: "gpu-kernel" },
AbiData { abi: Abi::EfiApi, name: "efiapi" },
AbiData { abi: Abi::AvrInterrupt, name: "avr-interrupt" },
AbiData { abi: Abi::AvrNonBlockingInterrupt, name: "avr-non-blocking-interrupt" },
@ -235,6 +239,10 @@ pub fn is_stable(name: &str) -> Result<(), AbiDisabled> {
feature: sym::abi_x86_interrupt,
explain: "x86-interrupt ABI is experimental and subject to change",
}),
"gpu-kernel" => Err(AbiDisabled::Unstable {
feature: sym::abi_gpu_kernel,
explain: "gpu-kernel ABI is experimental and subject to change",
}),
"avr-interrupt" | "avr-non-blocking-interrupt" => Err(AbiDisabled::Unstable {
feature: sym::abi_avr_interrupt,
explain: "avr-interrupt and avr-non-blocking-interrupt ABIs are experimental and subject to change",
@ -289,20 +297,21 @@ impl Abi {
PtxKernel => 19,
Msp430Interrupt => 20,
X86Interrupt => 21,
EfiApi => 22,
AvrInterrupt => 23,
AvrNonBlockingInterrupt => 24,
CCmseNonSecureCall => 25,
CCmseNonSecureEntry => 26,
GpuKernel => 22,
EfiApi => 23,
AvrInterrupt => 24,
AvrNonBlockingInterrupt => 25,
CCmseNonSecureCall => 26,
CCmseNonSecureEntry => 27,
// Cross-platform ABIs
System { unwind: false } => 27,
System { unwind: true } => 28,
RustIntrinsic => 29,
RustCall => 30,
Unadjusted => 31,
RustCold => 32,
RiscvInterruptM => 33,
RiscvInterruptS => 34,
System { unwind: false } => 28,
System { unwind: true } => 29,
RustIntrinsic => 30,
RustCall => 31,
Unadjusted => 32,
RustCold => 33,
RiscvInterruptM => 34,
RiscvInterruptS => 35,
};
debug_assert!(
AbiDatas

View File

@ -65,7 +65,11 @@ pub(crate) fn conv_to_call_conv(sess: &Session, c: Conv, default_call_conv: Call
sess.dcx().fatal("C-cmse-nonsecure-entry call conv is not yet implemented");
}
Conv::Msp430Intr | Conv::PtxKernel | Conv::AvrInterrupt | Conv::AvrNonBlockingInterrupt => {
Conv::Msp430Intr
| Conv::PtxKernel
| Conv::GpuKernel
| Conv::AvrInterrupt
| Conv::AvrNonBlockingInterrupt => {
unreachable!("tried to use {c:?} call conv which only exists on an unsupported target");
}
}

View File

@ -1,3 +1,4 @@
use std::borrow::Borrow;
use std::cmp;
use libc::c_uint;
@ -312,7 +313,7 @@ impl<'ll, 'tcx> ArgAbiBuilderMethods<'tcx> for Builder<'_, 'll, 'tcx> {
pub(crate) trait FnAbiLlvmExt<'ll, 'tcx> {
fn llvm_type(&self, cx: &CodegenCx<'ll, 'tcx>) -> &'ll Type;
fn ptr_to_llvm_type(&self, cx: &CodegenCx<'ll, 'tcx>) -> &'ll Type;
fn llvm_cconv(&self) -> llvm::CallConv;
fn llvm_cconv(&self, cx: &CodegenCx<'ll, 'tcx>) -> llvm::CallConv;
/// Apply attributes to a function declaration/definition.
fn apply_attrs_llfn(
@ -404,8 +405,8 @@ impl<'ll, 'tcx> FnAbiLlvmExt<'ll, 'tcx> for FnAbi<'tcx, Ty<'tcx>> {
cx.type_ptr_ext(cx.data_layout().instruction_address_space)
}
fn llvm_cconv(&self) -> llvm::CallConv {
self.conv.into()
fn llvm_cconv(&self, cx: &CodegenCx<'ll, 'tcx>) -> llvm::CallConv {
llvm::CallConv::from_conv(self.conv, cx.tcx.sess.target.arch.borrow())
}
fn apply_attrs_llfn(
@ -617,7 +618,7 @@ impl<'ll, 'tcx> FnAbiLlvmExt<'ll, 'tcx> for FnAbi<'tcx, Ty<'tcx>> {
}
}
let cconv = self.llvm_cconv();
let cconv = self.llvm_cconv(&bx.cx);
if cconv != llvm::CCallConv {
llvm::SetInstructionCallConv(callsite, cconv);
}
@ -655,8 +656,8 @@ impl<'tcx> AbiBuilderMethods<'tcx> for Builder<'_, '_, 'tcx> {
}
}
impl From<Conv> for llvm::CallConv {
fn from(conv: Conv) -> Self {
impl llvm::CallConv {
pub fn from_conv(conv: Conv, arch: &str) -> Self {
match conv {
Conv::C
| Conv::Rust
@ -666,6 +667,15 @@ impl From<Conv> for llvm::CallConv {
Conv::Cold => llvm::ColdCallConv,
Conv::PreserveMost => llvm::PreserveMost,
Conv::PreserveAll => llvm::PreserveAll,
Conv::GpuKernel => {
if arch == "amdgpu" {
llvm::AmdgpuKernel
} else if arch == "nvptx64" {
llvm::PtxKernel
} else {
panic!("Architecture {arch} does not support GpuKernel calling convention");
}
}
Conv::AvrInterrupt => llvm::AvrInterrupt,
Conv::AvrNonBlockingInterrupt => llvm::AvrNonBlockingInterrupt,
Conv::ArmAapcs => llvm::ArmAapcsCallConv,

View File

@ -741,7 +741,10 @@ impl<'ll, 'tcx> MiscCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
if self.get_declared_value(entry_name).is_none() {
Some(self.declare_entry_fn(
entry_name,
self.sess().target.entry_abi.into(),
llvm::CallConv::from_conv(
self.sess().target.entry_abi,
self.sess().target.arch.borrow(),
),
llvm::UnnamedAddr::Global,
fn_type,
))

View File

@ -125,7 +125,7 @@ impl<'ll, 'tcx> CodegenCx<'ll, 'tcx> {
let llfn = declare_raw_fn(
self,
name,
fn_abi.llvm_cconv(),
fn_abi.llvm_cconv(self),
llvm::UnnamedAddr::Global,
llvm::Visibility::Default,
fn_abi.llvm_type(self),

View File

@ -120,6 +120,7 @@ pub enum CallConv {
X86_Intr = 83,
AvrNonBlockingInterrupt = 84,
AvrInterrupt = 85,
AmdgpuKernel = 91,
}
/// Must match the layout of `LLVMLinkage`.

View File

@ -359,6 +359,8 @@ declare_features! (
(unstable, abi_avr_interrupt, "1.45.0", Some(69664)),
/// Allows `extern "C-cmse-nonsecure-call" fn()`.
(unstable, abi_c_cmse_nonsecure_call, "1.51.0", Some(81391)),
/// Allows `extern "gpu-kernel" fn()`.
(unstable, abi_gpu_kernel, "CURRENT_RUSTC_VERSION", Some(135467)),
/// Allows `extern "msp430-interrupt" fn()`.
(unstable, abi_msp430_interrupt, "1.16.0", Some(38487)),
/// Allows `extern "ptx-*" fn()`.

View File

@ -1240,6 +1240,7 @@ pub fn fn_can_unwind(tcx: TyCtxt<'_>, fn_def_id: Option<DefId>, abi: ExternAbi)
PtxKernel
| Msp430Interrupt
| X86Interrupt
| GpuKernel
| EfiApi
| AvrInterrupt
| AvrNonBlockingInterrupt

View File

@ -472,6 +472,7 @@ impl RustcInternal for Abi {
Abi::PtxKernel => rustc_abi::ExternAbi::PtxKernel,
Abi::Msp430Interrupt => rustc_abi::ExternAbi::Msp430Interrupt,
Abi::X86Interrupt => rustc_abi::ExternAbi::X86Interrupt,
Abi::GpuKernel => rustc_abi::ExternAbi::GpuKernel,
Abi::EfiApi => rustc_abi::ExternAbi::EfiApi,
Abi::AvrInterrupt => rustc_abi::ExternAbi::AvrInterrupt,
Abi::AvrNonBlockingInterrupt => rustc_abi::ExternAbi::AvrNonBlockingInterrupt,

View File

@ -113,6 +113,7 @@ impl<'tcx> Stable<'tcx> for callconv::Conv {
Conv::X86VectorCall => CallConvention::X86VectorCall,
Conv::X86_64SysV => CallConvention::X86_64SysV,
Conv::X86_64Win64 => CallConvention::X86_64Win64,
Conv::GpuKernel => CallConvention::GpuKernel,
Conv::AvrInterrupt => CallConvention::AvrInterrupt,
Conv::AvrNonBlockingInterrupt => CallConvention::AvrNonBlockingInterrupt,
Conv::RiscvInterrupt { .. } => CallConvention::RiscvInterrupt,

View File

@ -911,6 +911,7 @@ impl<'tcx> Stable<'tcx> for rustc_abi::ExternAbi {
ExternAbi::Win64 { unwind } => Abi::Win64 { unwind },
ExternAbi::SysV64 { unwind } => Abi::SysV64 { unwind },
ExternAbi::PtxKernel => Abi::PtxKernel,
ExternAbi::GpuKernel => Abi::GpuKernel,
ExternAbi::Msp430Interrupt => Abi::Msp430Interrupt,
ExternAbi::X86Interrupt => Abi::X86Interrupt,
ExternAbi::EfiApi => Abi::EfiApi,

View File

@ -379,6 +379,7 @@ symbols! {
abi_avr_interrupt,
abi_c_cmse_nonsecure_call,
abi_efiapi,
abi_gpu_kernel,
abi_msp430_interrupt,
abi_ptx,
abi_riscv_interrupt,

View File

@ -547,6 +547,8 @@ pub enum Conv {
PtxKernel,
GpuKernel,
X86Fastcall,
X86Intr,
X86Stdcall,
@ -866,6 +868,7 @@ impl FromStr for Conv {
"X86VectorCall" => Ok(Conv::X86VectorCall),
"X86_64SysV" => Ok(Conv::X86_64SysV),
"X86_64Win64" => Ok(Conv::X86_64Win64),
"GpuKernel" => Ok(Conv::GpuKernel),
"AvrInterrupt" => Ok(Conv::AvrInterrupt),
"AvrNonBlockingInterrupt" => Ok(Conv::AvrNonBlockingInterrupt),
"RiscvInterrupt(machine)" => {

View File

@ -113,6 +113,7 @@ impl ToJson for crate::abi::call::Conv {
Self::X86VectorCall => "X86VectorCall",
Self::X86_64SysV => "X86_64SysV",
Self::X86_64Win64 => "X86_64Win64",
Self::GpuKernel => "GpuKernel",
Self::AvrInterrupt => "AvrInterrupt",
Self::AvrNonBlockingInterrupt => "AvrNonBlockingInterrupt",
Self::RiscvInterrupt { kind } => {

View File

@ -2854,6 +2854,7 @@ impl Target {
}
Win64 { .. } | SysV64 { .. } => self.arch == "x86_64",
PtxKernel => self.arch == "nvptx64",
GpuKernel => ["amdgpu", "nvptx64"].contains(&&self.arch[..]),
Msp430Interrupt => self.arch == "msp430",
RiscvInterruptM | RiscvInterruptS => ["riscv32", "riscv64"].contains(&&self.arch[..]),
AvrInterrupt | AvrNonBlockingInterrupt => self.arch == "avr",

View File

@ -293,6 +293,7 @@ fn conv_from_spec_abi(tcx: TyCtxt<'_>, abi: ExternAbi, c_variadic: bool) -> Conv
PtxKernel => Conv::PtxKernel,
Msp430Interrupt => Conv::Msp430Intr,
X86Interrupt => Conv::X86Intr,
GpuKernel => Conv::GpuKernel,
AvrInterrupt => Conv::AvrInterrupt,
AvrNonBlockingInterrupt => Conv::AvrNonBlockingInterrupt,
RiscvInterruptM => Conv::RiscvInterrupt { kind: RiscvInterruptKind::Machine },

View File

@ -442,6 +442,8 @@ pub enum CallConvention {
PtxKernel,
GpuKernel,
X86Fastcall,
X86Intr,
X86Stdcall,

View File

@ -1077,6 +1077,7 @@ pub enum Abi {
PtxKernel,
Msp430Interrupt,
X86Interrupt,
GpuKernel,
EfiApi,
AvrInterrupt,
AvrNonBlockingInterrupt,

View File

@ -0,0 +1,18 @@
// Checks that the gpu-kernel calling convention correctly translates to LLVM calling conventions.
//@ revisions: nvptx
//@ [nvptx] compile-flags: --crate-type=rlib --target=nvptx64-nvidia-cuda
//@ [nvptx] needs-llvm-components: nvptx
#![feature(no_core, lang_items, abi_gpu_kernel)]
#![no_core]
#[lang = "sized"]
trait Sized {}
#[lang = "freeze"]
trait Freeze {}
#[lang = "copy"]
trait Copy {}
// nvptx: define ptx_kernel void @fun(i32
#[no_mangle]
pub extern "gpu-kernel" fn fun(_: i32) {}

View File

@ -1,5 +1,5 @@
warning: the calling convention "ptx-kernel" is not supported on this target
--> $DIR/unsupported.rs:35:15
--> $DIR/unsupported.rs:36:15
|
LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -9,13 +9,13 @@ LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
= note: `#[warn(unsupported_fn_ptr_calling_conventions)]` on by default
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:40:1
--> $DIR/unsupported.rs:41:1
|
LL | extern "ptx-kernel" {}
| ^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "aapcs" is not supported on this target
--> $DIR/unsupported.rs:49:17
--> $DIR/unsupported.rs:52:17
|
LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
| ^^^^^^^^^^^^^^^^^^^
@ -24,13 +24,13 @@ LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:62:1
--> $DIR/unsupported.rs:65:1
|
LL | extern "aapcs" {}
| ^^^^^^^^^^^^^^^^^
warning: the calling convention "msp430-interrupt" is not supported on this target
--> $DIR/unsupported.rs:71:18
--> $DIR/unsupported.rs:74:18
|
LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -39,13 +39,13 @@ LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:76:1
--> $DIR/unsupported.rs:79:1
|
LL | extern "msp430-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "avr-interrupt" is not supported on this target
--> $DIR/unsupported.rs:81:15
--> $DIR/unsupported.rs:84:15
|
LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -54,13 +54,13 @@ LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:86:1
--> $DIR/unsupported.rs:89:1
|
LL | extern "avr-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "riscv-interrupt-m" is not supported on this target
--> $DIR/unsupported.rs:94:17
--> $DIR/unsupported.rs:97:17
|
LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -69,13 +69,13 @@ LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:105:1
--> $DIR/unsupported.rs:108:1
|
LL | extern "riscv-interrupt-m" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "x86-interrupt" is not supported on this target
--> $DIR/unsupported.rs:116:15
--> $DIR/unsupported.rs:119:15
|
LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -84,13 +84,13 @@ LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:127:1
--> $DIR/unsupported.rs:130:1
|
LL | extern "x86-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "thiscall" is not supported on this target
--> $DIR/unsupported.rs:139:20
--> $DIR/unsupported.rs:142:20
|
LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^
@ -99,13 +99,13 @@ LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:152:1
--> $DIR/unsupported.rs:155:1
|
LL | extern "thiscall" {}
| ^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "stdcall" is not supported on this target
--> $DIR/unsupported.rs:165:19
--> $DIR/unsupported.rs:168:19
|
LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^
@ -114,13 +114,13 @@ LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:178:1
--> $DIR/unsupported.rs:181:1
|
LL | extern "stdcall" {}
| ^^^^^^^^^^^^^^^^^^^
warning: the calling convention "C-cmse-nonsecure-call" is not supported on this target
--> $DIR/unsupported.rs:185:21
--> $DIR/unsupported.rs:188:21
|
LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -129,7 +129,7 @@ LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
warning: the calling convention "C-cmse-nonsecure-entry" is not supported on this target
--> $DIR/unsupported.rs:193:22
--> $DIR/unsupported.rs:196:22
|
LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -138,65 +138,71 @@ LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:198:1
--> $DIR/unsupported.rs:201:1
|
LL | extern "C-cmse-nonsecure-entry" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:33:1
--> $DIR/unsupported.rs:34:1
|
LL | extern "ptx-kernel" fn ptx() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:43:1
|
LL | extern "gpu-kernel" fn gpu() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:46:1
|
LL | extern "aapcs" fn aapcs() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:69:1
--> $DIR/unsupported.rs:72:1
|
LL | extern "msp430-interrupt" fn msp430() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:79:1
--> $DIR/unsupported.rs:82:1
|
LL | extern "avr-interrupt" fn avr() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:89:1
--> $DIR/unsupported.rs:92:1
|
LL | extern "riscv-interrupt-m" fn riscv() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:111:1
--> $DIR/unsupported.rs:114:1
|
LL | extern "x86-interrupt" fn x86() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:133:1
--> $DIR/unsupported.rs:136:1
|
LL | extern "thiscall" fn thiscall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:159:1
--> $DIR/unsupported.rs:162:1
|
LL | extern "stdcall" fn stdcall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:191:1
--> $DIR/unsupported.rs:194:1
|
LL | extern "C-cmse-nonsecure-entry" fn cmse_entry() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 18 previous errors; 10 warnings emitted
error: aborting due to 19 previous errors; 10 warnings emitted
For more information about this error, try `rustc --explain E0570`.

View File

@ -1,5 +1,5 @@
warning: the calling convention "ptx-kernel" is not supported on this target
--> $DIR/unsupported.rs:35:15
--> $DIR/unsupported.rs:36:15
|
LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -9,13 +9,13 @@ LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
= note: `#[warn(unsupported_fn_ptr_calling_conventions)]` on by default
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:40:1
--> $DIR/unsupported.rs:41:1
|
LL | extern "ptx-kernel" {}
| ^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "msp430-interrupt" is not supported on this target
--> $DIR/unsupported.rs:71:18
--> $DIR/unsupported.rs:74:18
|
LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -24,13 +24,13 @@ LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:76:1
--> $DIR/unsupported.rs:79:1
|
LL | extern "msp430-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "avr-interrupt" is not supported on this target
--> $DIR/unsupported.rs:81:15
--> $DIR/unsupported.rs:84:15
|
LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -39,13 +39,13 @@ LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:86:1
--> $DIR/unsupported.rs:89:1
|
LL | extern "avr-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "riscv-interrupt-m" is not supported on this target
--> $DIR/unsupported.rs:94:17
--> $DIR/unsupported.rs:97:17
|
LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -54,13 +54,13 @@ LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:105:1
--> $DIR/unsupported.rs:108:1
|
LL | extern "riscv-interrupt-m" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "x86-interrupt" is not supported on this target
--> $DIR/unsupported.rs:116:15
--> $DIR/unsupported.rs:119:15
|
LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -69,13 +69,13 @@ LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:127:1
--> $DIR/unsupported.rs:130:1
|
LL | extern "x86-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "thiscall" is not supported on this target
--> $DIR/unsupported.rs:139:20
--> $DIR/unsupported.rs:142:20
|
LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^
@ -84,13 +84,13 @@ LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:152:1
--> $DIR/unsupported.rs:155:1
|
LL | extern "thiscall" {}
| ^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "stdcall" is not supported on this target
--> $DIR/unsupported.rs:165:19
--> $DIR/unsupported.rs:168:19
|
LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^
@ -99,13 +99,13 @@ LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:178:1
--> $DIR/unsupported.rs:181:1
|
LL | extern "stdcall" {}
| ^^^^^^^^^^^^^^^^^^^
warning: the calling convention "C-cmse-nonsecure-call" is not supported on this target
--> $DIR/unsupported.rs:185:21
--> $DIR/unsupported.rs:188:21
|
LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -114,7 +114,7 @@ LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
warning: the calling convention "C-cmse-nonsecure-entry" is not supported on this target
--> $DIR/unsupported.rs:193:22
--> $DIR/unsupported.rs:196:22
|
LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -123,59 +123,65 @@ LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:198:1
--> $DIR/unsupported.rs:201:1
|
LL | extern "C-cmse-nonsecure-entry" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:33:1
--> $DIR/unsupported.rs:34:1
|
LL | extern "ptx-kernel" fn ptx() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:43:1
|
LL | extern "gpu-kernel" fn gpu() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:69:1
--> $DIR/unsupported.rs:72:1
|
LL | extern "msp430-interrupt" fn msp430() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:79:1
--> $DIR/unsupported.rs:82:1
|
LL | extern "avr-interrupt" fn avr() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:89:1
--> $DIR/unsupported.rs:92:1
|
LL | extern "riscv-interrupt-m" fn riscv() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:111:1
--> $DIR/unsupported.rs:114:1
|
LL | extern "x86-interrupt" fn x86() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:133:1
--> $DIR/unsupported.rs:136:1
|
LL | extern "thiscall" fn thiscall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:159:1
--> $DIR/unsupported.rs:162:1
|
LL | extern "stdcall" fn stdcall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:191:1
--> $DIR/unsupported.rs:194:1
|
LL | extern "C-cmse-nonsecure-entry" fn cmse_entry() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 16 previous errors; 9 warnings emitted
error: aborting due to 17 previous errors; 9 warnings emitted
For more information about this error, try `rustc --explain E0570`.

View File

@ -1,5 +1,5 @@
warning: the calling convention "ptx-kernel" is not supported on this target
--> $DIR/unsupported.rs:35:15
--> $DIR/unsupported.rs:36:15
|
LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -9,13 +9,13 @@ LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
= note: `#[warn(unsupported_fn_ptr_calling_conventions)]` on by default
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:40:1
--> $DIR/unsupported.rs:41:1
|
LL | extern "ptx-kernel" {}
| ^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "aapcs" is not supported on this target
--> $DIR/unsupported.rs:49:17
--> $DIR/unsupported.rs:52:17
|
LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
| ^^^^^^^^^^^^^^^^^^^
@ -24,13 +24,13 @@ LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:62:1
--> $DIR/unsupported.rs:65:1
|
LL | extern "aapcs" {}
| ^^^^^^^^^^^^^^^^^
warning: the calling convention "msp430-interrupt" is not supported on this target
--> $DIR/unsupported.rs:71:18
--> $DIR/unsupported.rs:74:18
|
LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -39,13 +39,13 @@ LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:76:1
--> $DIR/unsupported.rs:79:1
|
LL | extern "msp430-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "avr-interrupt" is not supported on this target
--> $DIR/unsupported.rs:81:15
--> $DIR/unsupported.rs:84:15
|
LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -54,13 +54,13 @@ LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:86:1
--> $DIR/unsupported.rs:89:1
|
LL | extern "avr-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "riscv-interrupt-m" is not supported on this target
--> $DIR/unsupported.rs:94:17
--> $DIR/unsupported.rs:97:17
|
LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -69,13 +69,13 @@ LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:105:1
--> $DIR/unsupported.rs:108:1
|
LL | extern "riscv-interrupt-m" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "C-cmse-nonsecure-call" is not supported on this target
--> $DIR/unsupported.rs:185:21
--> $DIR/unsupported.rs:188:21
|
LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -84,7 +84,7 @@ LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
warning: the calling convention "C-cmse-nonsecure-entry" is not supported on this target
--> $DIR/unsupported.rs:193:22
--> $DIR/unsupported.rs:196:22
|
LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -93,47 +93,53 @@ LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:198:1
--> $DIR/unsupported.rs:201:1
|
LL | extern "C-cmse-nonsecure-entry" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:33:1
--> $DIR/unsupported.rs:34:1
|
LL | extern "ptx-kernel" fn ptx() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:43:1
|
LL | extern "gpu-kernel" fn gpu() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:46:1
|
LL | extern "aapcs" fn aapcs() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:69:1
--> $DIR/unsupported.rs:72:1
|
LL | extern "msp430-interrupt" fn msp430() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:79:1
--> $DIR/unsupported.rs:82:1
|
LL | extern "avr-interrupt" fn avr() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:89:1
--> $DIR/unsupported.rs:92:1
|
LL | extern "riscv-interrupt-m" fn riscv() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:191:1
--> $DIR/unsupported.rs:194:1
|
LL | extern "C-cmse-nonsecure-entry" fn cmse_entry() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 12 previous errors; 7 warnings emitted
error: aborting due to 13 previous errors; 7 warnings emitted
For more information about this error, try `rustc --explain E0570`.

View File

@ -1,5 +1,5 @@
warning: the calling convention "ptx-kernel" is not supported on this target
--> $DIR/unsupported.rs:35:15
--> $DIR/unsupported.rs:36:15
|
LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -9,13 +9,13 @@ LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
= note: `#[warn(unsupported_fn_ptr_calling_conventions)]` on by default
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:40:1
--> $DIR/unsupported.rs:41:1
|
LL | extern "ptx-kernel" {}
| ^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "aapcs" is not supported on this target
--> $DIR/unsupported.rs:49:17
--> $DIR/unsupported.rs:52:17
|
LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
| ^^^^^^^^^^^^^^^^^^^
@ -24,13 +24,13 @@ LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:62:1
--> $DIR/unsupported.rs:65:1
|
LL | extern "aapcs" {}
| ^^^^^^^^^^^^^^^^^
warning: the calling convention "msp430-interrupt" is not supported on this target
--> $DIR/unsupported.rs:71:18
--> $DIR/unsupported.rs:74:18
|
LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -39,13 +39,13 @@ LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:76:1
--> $DIR/unsupported.rs:79:1
|
LL | extern "msp430-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "avr-interrupt" is not supported on this target
--> $DIR/unsupported.rs:81:15
--> $DIR/unsupported.rs:84:15
|
LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -54,13 +54,13 @@ LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:86:1
--> $DIR/unsupported.rs:89:1
|
LL | extern "avr-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "x86-interrupt" is not supported on this target
--> $DIR/unsupported.rs:116:15
--> $DIR/unsupported.rs:119:15
|
LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -69,13 +69,13 @@ LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:127:1
--> $DIR/unsupported.rs:130:1
|
LL | extern "x86-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "thiscall" is not supported on this target
--> $DIR/unsupported.rs:139:20
--> $DIR/unsupported.rs:142:20
|
LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^
@ -84,13 +84,13 @@ LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:152:1
--> $DIR/unsupported.rs:155:1
|
LL | extern "thiscall" {}
| ^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "stdcall" is not supported on this target
--> $DIR/unsupported.rs:165:19
--> $DIR/unsupported.rs:168:19
|
LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^
@ -99,13 +99,13 @@ LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:178:1
--> $DIR/unsupported.rs:181:1
|
LL | extern "stdcall" {}
| ^^^^^^^^^^^^^^^^^^^
warning: the calling convention "C-cmse-nonsecure-call" is not supported on this target
--> $DIR/unsupported.rs:185:21
--> $DIR/unsupported.rs:188:21
|
LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -114,7 +114,7 @@ LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
warning: the calling convention "C-cmse-nonsecure-entry" is not supported on this target
--> $DIR/unsupported.rs:193:22
--> $DIR/unsupported.rs:196:22
|
LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -123,59 +123,65 @@ LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:198:1
--> $DIR/unsupported.rs:201:1
|
LL | extern "C-cmse-nonsecure-entry" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:33:1
--> $DIR/unsupported.rs:34:1
|
LL | extern "ptx-kernel" fn ptx() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:43:1
|
LL | extern "gpu-kernel" fn gpu() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:46:1
|
LL | extern "aapcs" fn aapcs() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:69:1
--> $DIR/unsupported.rs:72:1
|
LL | extern "msp430-interrupt" fn msp430() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:79:1
--> $DIR/unsupported.rs:82:1
|
LL | extern "avr-interrupt" fn avr() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:111:1
--> $DIR/unsupported.rs:114:1
|
LL | extern "x86-interrupt" fn x86() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:133:1
--> $DIR/unsupported.rs:136:1
|
LL | extern "thiscall" fn thiscall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:159:1
--> $DIR/unsupported.rs:162:1
|
LL | extern "stdcall" fn stdcall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:191:1
--> $DIR/unsupported.rs:194:1
|
LL | extern "C-cmse-nonsecure-entry" fn cmse_entry() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 16 previous errors; 9 warnings emitted
error: aborting due to 17 previous errors; 9 warnings emitted
For more information about this error, try `rustc --explain E0570`.

View File

@ -1,5 +1,5 @@
warning: the calling convention "ptx-kernel" is not supported on this target
--> $DIR/unsupported.rs:35:15
--> $DIR/unsupported.rs:36:15
|
LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -9,13 +9,13 @@ LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
= note: `#[warn(unsupported_fn_ptr_calling_conventions)]` on by default
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:40:1
--> $DIR/unsupported.rs:41:1
|
LL | extern "ptx-kernel" {}
| ^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "aapcs" is not supported on this target
--> $DIR/unsupported.rs:49:17
--> $DIR/unsupported.rs:52:17
|
LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
| ^^^^^^^^^^^^^^^^^^^
@ -24,13 +24,13 @@ LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:62:1
--> $DIR/unsupported.rs:65:1
|
LL | extern "aapcs" {}
| ^^^^^^^^^^^^^^^^^
warning: the calling convention "msp430-interrupt" is not supported on this target
--> $DIR/unsupported.rs:71:18
--> $DIR/unsupported.rs:74:18
|
LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -39,13 +39,13 @@ LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:76:1
--> $DIR/unsupported.rs:79:1
|
LL | extern "msp430-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "avr-interrupt" is not supported on this target
--> $DIR/unsupported.rs:81:15
--> $DIR/unsupported.rs:84:15
|
LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -54,13 +54,13 @@ LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:86:1
--> $DIR/unsupported.rs:89:1
|
LL | extern "avr-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "x86-interrupt" is not supported on this target
--> $DIR/unsupported.rs:116:15
--> $DIR/unsupported.rs:119:15
|
LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -69,13 +69,13 @@ LL | fn x86_ptr(f: extern "x86-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:127:1
--> $DIR/unsupported.rs:130:1
|
LL | extern "x86-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "thiscall" is not supported on this target
--> $DIR/unsupported.rs:139:20
--> $DIR/unsupported.rs:142:20
|
LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^
@ -84,13 +84,13 @@ LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:152:1
--> $DIR/unsupported.rs:155:1
|
LL | extern "thiscall" {}
| ^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "stdcall" is not supported on this target
--> $DIR/unsupported.rs:165:19
--> $DIR/unsupported.rs:168:19
|
LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^
@ -99,13 +99,13 @@ LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:178:1
--> $DIR/unsupported.rs:181:1
|
LL | extern "stdcall" {}
| ^^^^^^^^^^^^^^^^^^^
warning: the calling convention "C-cmse-nonsecure-call" is not supported on this target
--> $DIR/unsupported.rs:185:21
--> $DIR/unsupported.rs:188:21
|
LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -114,7 +114,7 @@ LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
warning: the calling convention "C-cmse-nonsecure-entry" is not supported on this target
--> $DIR/unsupported.rs:193:22
--> $DIR/unsupported.rs:196:22
|
LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -123,59 +123,65 @@ LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:198:1
--> $DIR/unsupported.rs:201:1
|
LL | extern "C-cmse-nonsecure-entry" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:33:1
--> $DIR/unsupported.rs:34:1
|
LL | extern "ptx-kernel" fn ptx() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:43:1
|
LL | extern "gpu-kernel" fn gpu() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:46:1
|
LL | extern "aapcs" fn aapcs() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:69:1
--> $DIR/unsupported.rs:72:1
|
LL | extern "msp430-interrupt" fn msp430() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:79:1
--> $DIR/unsupported.rs:82:1
|
LL | extern "avr-interrupt" fn avr() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:111:1
--> $DIR/unsupported.rs:114:1
|
LL | extern "x86-interrupt" fn x86() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:133:1
--> $DIR/unsupported.rs:136:1
|
LL | extern "thiscall" fn thiscall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:159:1
--> $DIR/unsupported.rs:162:1
|
LL | extern "stdcall" fn stdcall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:191:1
--> $DIR/unsupported.rs:194:1
|
LL | extern "C-cmse-nonsecure-entry" fn cmse_entry() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 16 previous errors; 9 warnings emitted
error: aborting due to 17 previous errors; 9 warnings emitted
For more information about this error, try `rustc --explain E0570`.

View File

@ -19,6 +19,7 @@
abi_ptx,
abi_msp430_interrupt,
abi_avr_interrupt,
abi_gpu_kernel,
abi_x86_interrupt,
abi_riscv_interrupt,
abi_c_cmse_nonsecure_call,
@ -39,6 +40,8 @@ fn ptx_ptr(f: extern "ptx-kernel" fn()) {
}
extern "ptx-kernel" {}
//~^ ERROR is not a supported ABI
extern "gpu-kernel" fn gpu() {}
//~^ ERROR is not a supported ABI
extern "aapcs" fn aapcs() {}
//[x64]~^ ERROR is not a supported ABI

View File

@ -1,5 +1,5 @@
warning: the calling convention "ptx-kernel" is not supported on this target
--> $DIR/unsupported.rs:35:15
--> $DIR/unsupported.rs:36:15
|
LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -9,13 +9,13 @@ LL | fn ptx_ptr(f: extern "ptx-kernel" fn()) {
= note: `#[warn(unsupported_fn_ptr_calling_conventions)]` on by default
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:40:1
--> $DIR/unsupported.rs:41:1
|
LL | extern "ptx-kernel" {}
| ^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "aapcs" is not supported on this target
--> $DIR/unsupported.rs:49:17
--> $DIR/unsupported.rs:52:17
|
LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
| ^^^^^^^^^^^^^^^^^^^
@ -24,13 +24,13 @@ LL | fn aapcs_ptr(f: extern "aapcs" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:62:1
--> $DIR/unsupported.rs:65:1
|
LL | extern "aapcs" {}
| ^^^^^^^^^^^^^^^^^
warning: the calling convention "msp430-interrupt" is not supported on this target
--> $DIR/unsupported.rs:71:18
--> $DIR/unsupported.rs:74:18
|
LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -39,13 +39,13 @@ LL | fn msp430_ptr(f: extern "msp430-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:76:1
--> $DIR/unsupported.rs:79:1
|
LL | extern "msp430-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "avr-interrupt" is not supported on this target
--> $DIR/unsupported.rs:81:15
--> $DIR/unsupported.rs:84:15
|
LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -54,13 +54,13 @@ LL | fn avr_ptr(f: extern "avr-interrupt" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:86:1
--> $DIR/unsupported.rs:89:1
|
LL | extern "avr-interrupt" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "riscv-interrupt-m" is not supported on this target
--> $DIR/unsupported.rs:94:17
--> $DIR/unsupported.rs:97:17
|
LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -69,13 +69,13 @@ LL | fn riscv_ptr(f: extern "riscv-interrupt-m" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:105:1
--> $DIR/unsupported.rs:108:1
|
LL | extern "riscv-interrupt-m" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "thiscall" is not supported on this target
--> $DIR/unsupported.rs:139:20
--> $DIR/unsupported.rs:142:20
|
LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^
@ -84,13 +84,13 @@ LL | fn thiscall_ptr(f: extern "thiscall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:152:1
--> $DIR/unsupported.rs:155:1
|
LL | extern "thiscall" {}
| ^^^^^^^^^^^^^^^^^^^^
warning: the calling convention "stdcall" is not supported on this target
--> $DIR/unsupported.rs:165:19
--> $DIR/unsupported.rs:168:19
|
LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^
@ -99,13 +99,13 @@ LL | fn stdcall_ptr(f: extern "stdcall" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:178:1
--> $DIR/unsupported.rs:181:1
|
LL | extern "stdcall" {}
| ^^^^^^^^^^^^^^^^^^^
warning: the calling convention "C-cmse-nonsecure-call" is not supported on this target
--> $DIR/unsupported.rs:185:21
--> $DIR/unsupported.rs:188:21
|
LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -114,7 +114,7 @@ LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
warning: the calling convention "C-cmse-nonsecure-entry" is not supported on this target
--> $DIR/unsupported.rs:193:22
--> $DIR/unsupported.rs:196:22
|
LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -123,59 +123,65 @@ LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" fn()) {
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:198:1
--> $DIR/unsupported.rs:201:1
|
LL | extern "C-cmse-nonsecure-entry" {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"ptx-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:33:1
--> $DIR/unsupported.rs:34:1
|
LL | extern "ptx-kernel" fn ptx() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:43:1
|
LL | extern "gpu-kernel" fn gpu() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"aapcs"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:46:1
|
LL | extern "aapcs" fn aapcs() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:69:1
--> $DIR/unsupported.rs:72:1
|
LL | extern "msp430-interrupt" fn msp430() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:79:1
--> $DIR/unsupported.rs:82:1
|
LL | extern "avr-interrupt" fn avr() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"riscv-interrupt-m"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:89:1
--> $DIR/unsupported.rs:92:1
|
LL | extern "riscv-interrupt-m" fn riscv() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"thiscall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:133:1
--> $DIR/unsupported.rs:136:1
|
LL | extern "thiscall" fn thiscall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"stdcall"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:159:1
--> $DIR/unsupported.rs:162:1
|
LL | extern "stdcall" fn stdcall() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
--> $DIR/unsupported.rs:191:1
--> $DIR/unsupported.rs:194:1
|
LL | extern "C-cmse-nonsecure-entry" fn cmse_entry() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 16 previous errors; 9 warnings emitted
error: aborting due to 17 previous errors; 9 warnings emitted
For more information about this error, try `rustc --explain E0570`.

View File

@ -0,0 +1,45 @@
//@ compile-flags: --crate-type=rlib
#![feature(no_core, lang_items)]
#![no_core]
#[lang="sized"]
trait Sized { }
#[lang="tuple_trait"]
trait Tuple { }
// Functions
extern "gpu-kernel" fn f1(_: ()) {} //~ ERROR gpu-kernel ABI is experimental and subject to change
//~^ ERROR is not a supported ABI
// Methods in trait definition
trait Tr {
extern "gpu-kernel" fn m1(_: ()); //~ ERROR gpu-kernel ABI is experimental and subject to change
extern "gpu-kernel" fn dm1(_: ()) {} //~ ERROR gpu-kernel ABI is experimental and subject to change
//~^ ERROR is not a supported ABI
}
struct S;
// Methods in trait impl
impl Tr for S {
extern "gpu-kernel" fn m1(_: ()) {} //~ ERROR gpu-kernel ABI is experimental and subject to change
//~^ ERROR is not a supported ABI
}
// Methods in inherent impl
impl S {
extern "gpu-kernel" fn im1(_: ()) {} //~ ERROR gpu-kernel ABI is experimental and subject to change
//~^ ERROR is not a supported ABI
}
// Function pointer types
type A1 = extern "gpu-kernel" fn(_: ()); //~ ERROR gpu-kernel ABI is experimental and subject to change
//~^ WARN the calling convention "gpu-kernel" is not supported on this target
//~^^ WARN this was previously accepted by the compiler but is being phased out
// Foreign modules
extern "gpu-kernel" {} //~ ERROR gpu-kernel ABI is experimental and subject to change
//~^ ERROR is not a supported ABI

View File

@ -0,0 +1,114 @@
error[E0658]: gpu-kernel ABI is experimental and subject to change
--> $DIR/feature-gate-abi_gpu_kernel.rs:13:8
|
LL | extern "gpu-kernel" fn f1(_: ()) {}
| ^^^^^^^^^^^^
|
= note: see issue #135467 <https://github.com/rust-lang/rust/issues/135467> for more information
= help: add `#![feature(abi_gpu_kernel)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: gpu-kernel ABI is experimental and subject to change
--> $DIR/feature-gate-abi_gpu_kernel.rs:18:12
|
LL | extern "gpu-kernel" fn m1(_: ());
| ^^^^^^^^^^^^
|
= note: see issue #135467 <https://github.com/rust-lang/rust/issues/135467> for more information
= help: add `#![feature(abi_gpu_kernel)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: gpu-kernel ABI is experimental and subject to change
--> $DIR/feature-gate-abi_gpu_kernel.rs:20:12
|
LL | extern "gpu-kernel" fn dm1(_: ()) {}
| ^^^^^^^^^^^^
|
= note: see issue #135467 <https://github.com/rust-lang/rust/issues/135467> for more information
= help: add `#![feature(abi_gpu_kernel)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: gpu-kernel ABI is experimental and subject to change
--> $DIR/feature-gate-abi_gpu_kernel.rs:28:12
|
LL | extern "gpu-kernel" fn m1(_: ()) {}
| ^^^^^^^^^^^^
|
= note: see issue #135467 <https://github.com/rust-lang/rust/issues/135467> for more information
= help: add `#![feature(abi_gpu_kernel)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: gpu-kernel ABI is experimental and subject to change
--> $DIR/feature-gate-abi_gpu_kernel.rs:34:12
|
LL | extern "gpu-kernel" fn im1(_: ()) {}
| ^^^^^^^^^^^^
|
= note: see issue #135467 <https://github.com/rust-lang/rust/issues/135467> for more information
= help: add `#![feature(abi_gpu_kernel)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: gpu-kernel ABI is experimental and subject to change
--> $DIR/feature-gate-abi_gpu_kernel.rs:39:18
|
LL | type A1 = extern "gpu-kernel" fn(_: ());
| ^^^^^^^^^^^^
|
= note: see issue #135467 <https://github.com/rust-lang/rust/issues/135467> for more information
= help: add `#![feature(abi_gpu_kernel)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: gpu-kernel ABI is experimental and subject to change
--> $DIR/feature-gate-abi_gpu_kernel.rs:44:8
|
LL | extern "gpu-kernel" {}
| ^^^^^^^^^^^^
|
= note: see issue #135467 <https://github.com/rust-lang/rust/issues/135467> for more information
= help: add `#![feature(abi_gpu_kernel)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
warning: the calling convention "gpu-kernel" is not supported on this target
--> $DIR/feature-gate-abi_gpu_kernel.rs:39:11
|
LL | type A1 = extern "gpu-kernel" fn(_: ());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #130260 <https://github.com/rust-lang/rust/issues/130260>
= note: `#[warn(unsupported_fn_ptr_calling_conventions)]` on by default
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/feature-gate-abi_gpu_kernel.rs:44:1
|
LL | extern "gpu-kernel" {}
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/feature-gate-abi_gpu_kernel.rs:13:1
|
LL | extern "gpu-kernel" fn f1(_: ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/feature-gate-abi_gpu_kernel.rs:20:5
|
LL | extern "gpu-kernel" fn dm1(_: ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/feature-gate-abi_gpu_kernel.rs:28:5
|
LL | extern "gpu-kernel" fn m1(_: ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0570]: `"gpu-kernel"` is not a supported ABI for the current target
--> $DIR/feature-gate-abi_gpu_kernel.rs:34:5
|
LL | extern "gpu-kernel" fn im1(_: ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 12 previous errors; 1 warning emitted
Some errors have detailed explanations: E0570, E0658.
For more information about an error, try `rustc --explain E0570`.

View File

@ -12,6 +12,7 @@ cdecl-unwind
efiapi
fastcall
fastcall-unwind
gpu-kernel
msp430-interrupt
ptx-kernel
riscv-interrupt-m