warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:35:15
   |
LL | fn ptx_ptr(f: extern "ptx-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]: `"ptx-kernel"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:40:1
   |
LL | extern "ptx-kernel" {}
   | ^^^^^^^^^^^^^^^^^^^^^^

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:49:17
   |
LL | fn aapcs_ptr(f: extern "aapcs" 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>

error[E0570]: `"aapcs"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:62:1
   |
LL | extern "aapcs" {}
   | ^^^^^^^^^^^^^^^^^

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:71:18
   |
LL | fn msp430_ptr(f: extern "msp430-interrupt" 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>

error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:76:1
   |
LL | extern "msp430-interrupt" {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:81:15
   |
LL | fn avr_ptr(f: extern "avr-interrupt" 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>

error[E0570]: `"avr-interrupt"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:86:1
   |
LL | extern "avr-interrupt" {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:116:15
   |
LL | fn x86_ptr(f: extern "x86-interrupt" 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>

error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:127:1
   |
LL | extern "x86-interrupt" {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:139:20
   |
LL | fn thiscall_ptr(f: extern "thiscall" 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>

error[E0570]: `"thiscall"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:152:1
   |
LL | extern "thiscall" {}
   | ^^^^^^^^^^^^^^^^^^^^

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:170:19
   |
LL | fn stdcall_ptr(f: extern "stdcall" 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>

warning: use of calling convention not supported on this target
  --> $DIR/unsupported.rs:183:1
   |
LL | extern "stdcall" {}
   | ^^^^^^^^^^^^^^^^^^^
   |
   = 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 #87678 <https://github.com/rust-lang/rust/issues/87678>
   = note: `#[warn(unsupported_calling_conventions)]` on by default

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:195:21
   |
LL | fn cmse_call_ptr(f: extern "C-cmse-nonsecure-call" 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>

warning: use of calling convention not supported on this target on function pointer
  --> $DIR/unsupported.rs:203:22
   |
LL | fn cmse_entry_ptr(f: extern "C-cmse-nonsecure-entry" 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>

error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:208: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
   |
LL | extern "ptx-kernel" fn ptx() {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0570]: `"aapcs"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:43:1
   |
LL | extern "aapcs" fn aapcs() {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0570]: `"msp430-interrupt"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:69: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
   |
LL | extern "avr-interrupt" fn avr() {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0570]: `"x86-interrupt"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:111:1
   |
LL | extern "x86-interrupt" fn x86() {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0570]: `"thiscall"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:133:1
   |
LL | extern "thiscall" fn thiscall() {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of calling convention not supported on this target
  --> $DIR/unsupported.rs:159:1
   |
LL | extern "stdcall" fn stdcall() {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = 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 #87678 <https://github.com/rust-lang/rust/issues/87678>

error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
  --> $DIR/unsupported.rs:201:1
   |
LL | extern "C-cmse-nonsecure-entry" fn cmse_entry() {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 14 previous errors; 11 warnings emitted

For more information about this error, try `rustc --explain E0570`.
