error[E0658]: intrinsics are subject to change
  --> $DIR/feature-gate-abi.rs:13:8
   |
LL | extern "rust-intrinsic" fn f1() {}
   |        ^^^^^^^^^^^^^^^^
   |
   = help: add `#![feature(intrinsics)]` to the crate attributes to enable

error[E0658]: platform intrinsics are experimental and possibly buggy
  --> $DIR/feature-gate-abi.rs:15:8
   |
LL | extern "platform-intrinsic" fn f2() {}
   |        ^^^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/27731
   = help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable

error[E0658]: vectorcall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:17:8
   |
LL | extern "vectorcall" fn f3() {}
   |        ^^^^^^^^^^^^
   |
   = help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable

error[E0658]: rust-call ABI is subject to change
  --> $DIR/feature-gate-abi.rs:18:8
   |
LL | extern "rust-call" fn f4() {}
   |        ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29625
   = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable

error[E0658]: msp430-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:19:8
   |
LL | extern "msp430-interrupt" fn f5() {}
   |        ^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38487
   = help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable

error[E0658]: PTX ABIs are experimental and subject to change
  --> $DIR/feature-gate-abi.rs:20:8
   |
LL | extern "ptx-kernel" fn f6() {}
   |        ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38788
   = help: add `#![feature(abi_ptx)]` to the crate attributes to enable

error[E0658]: x86-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:21:8
   |
LL | extern "x86-interrupt" fn f7() {}
   |        ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/40180
   = help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable

error[E0658]: thiscall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:22:8
   |
LL | extern "thiscall" fn f8() {}
   |        ^^^^^^^^^^
   |
   = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable

error[E0658]: amdgpu-kernel ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:23:8
   |
LL | extern "amdgpu-kernel" fn f9() {}
   |        ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/51575
   = help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable

error[E0658]: efiapi ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:24:8
   |
LL | extern "efiapi" fn f10() {}
   |        ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65815
   = help: add `#![feature(abi_efiapi)]` to the crate attributes to enable

error[E0658]: intrinsics are subject to change
  --> $DIR/feature-gate-abi.rs:28:12
   |
LL |     extern "rust-intrinsic" fn m1();
   |            ^^^^^^^^^^^^^^^^
   |
   = help: add `#![feature(intrinsics)]` to the crate attributes to enable

error[E0658]: platform intrinsics are experimental and possibly buggy
  --> $DIR/feature-gate-abi.rs:30:12
   |
LL |     extern "platform-intrinsic" fn m2();
   |            ^^^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/27731
   = help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable

error[E0658]: vectorcall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:32:12
   |
LL |     extern "vectorcall" fn m3();
   |            ^^^^^^^^^^^^
   |
   = help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable

error[E0658]: rust-call ABI is subject to change
  --> $DIR/feature-gate-abi.rs:33:12
   |
LL |     extern "rust-call" fn m4();
   |            ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29625
   = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable

error[E0658]: msp430-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:34:12
   |
LL |     extern "msp430-interrupt" fn m5();
   |            ^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38487
   = help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable

error[E0658]: PTX ABIs are experimental and subject to change
  --> $DIR/feature-gate-abi.rs:35:12
   |
LL |     extern "ptx-kernel" fn m6();
   |            ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38788
   = help: add `#![feature(abi_ptx)]` to the crate attributes to enable

error[E0658]: x86-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:36:12
   |
LL |     extern "x86-interrupt" fn m7();
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/40180
   = help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable

error[E0658]: thiscall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:37:12
   |
LL |     extern "thiscall" fn m8();
   |            ^^^^^^^^^^
   |
   = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable

error[E0658]: amdgpu-kernel ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:38:12
   |
LL |     extern "amdgpu-kernel" fn m9();
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/51575
   = help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable

error[E0658]: efiapi ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:39:12
   |
LL |     extern "efiapi" fn m10();
   |            ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65815
   = help: add `#![feature(abi_efiapi)]` to the crate attributes to enable

error[E0658]: vectorcall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:41:12
   |
LL |     extern "vectorcall" fn dm3() {}
   |            ^^^^^^^^^^^^
   |
   = help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable

error[E0658]: rust-call ABI is subject to change
  --> $DIR/feature-gate-abi.rs:42:12
   |
LL |     extern "rust-call" fn dm4() {}
   |            ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29625
   = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable

error[E0658]: msp430-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:43:12
   |
LL |     extern "msp430-interrupt" fn dm5() {}
   |            ^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38487
   = help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable

error[E0658]: PTX ABIs are experimental and subject to change
  --> $DIR/feature-gate-abi.rs:44:12
   |
LL |     extern "ptx-kernel" fn dm6() {}
   |            ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38788
   = help: add `#![feature(abi_ptx)]` to the crate attributes to enable

error[E0658]: x86-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:45:12
   |
LL |     extern "x86-interrupt" fn dm7() {}
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/40180
   = help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable

error[E0658]: thiscall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:46:12
   |
LL |     extern "thiscall" fn dm8() {}
   |            ^^^^^^^^^^
   |
   = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable

error[E0658]: amdgpu-kernel ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:47:12
   |
LL |     extern "amdgpu-kernel" fn dm9() {}
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/51575
   = help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable

error[E0658]: efiapi ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:48:12
   |
LL |     extern "efiapi" fn dm10() {}
   |            ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65815
   = help: add `#![feature(abi_efiapi)]` to the crate attributes to enable

error[E0658]: intrinsics are subject to change
  --> $DIR/feature-gate-abi.rs:55:12
   |
LL |     extern "rust-intrinsic" fn m1() {}
   |            ^^^^^^^^^^^^^^^^
   |
   = help: add `#![feature(intrinsics)]` to the crate attributes to enable

error[E0658]: platform intrinsics are experimental and possibly buggy
  --> $DIR/feature-gate-abi.rs:57:12
   |
LL |     extern "platform-intrinsic" fn m2() {}
   |            ^^^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/27731
   = help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable

error[E0658]: vectorcall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:59:12
   |
LL |     extern "vectorcall" fn m3() {}
   |            ^^^^^^^^^^^^
   |
   = help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable

error[E0658]: rust-call ABI is subject to change
  --> $DIR/feature-gate-abi.rs:60:12
   |
LL |     extern "rust-call" fn m4() {}
   |            ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29625
   = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable

error[E0658]: msp430-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:61:12
   |
LL |     extern "msp430-interrupt" fn m5() {}
   |            ^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38487
   = help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable

error[E0658]: PTX ABIs are experimental and subject to change
  --> $DIR/feature-gate-abi.rs:62:12
   |
LL |     extern "ptx-kernel" fn m6() {}
   |            ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38788
   = help: add `#![feature(abi_ptx)]` to the crate attributes to enable

error[E0658]: x86-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:63:12
   |
LL |     extern "x86-interrupt" fn m7() {}
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/40180
   = help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable

error[E0658]: thiscall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:64:12
   |
LL |     extern "thiscall" fn m8() {}
   |            ^^^^^^^^^^
   |
   = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable

error[E0658]: amdgpu-kernel ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:65:12
   |
LL |     extern "amdgpu-kernel" fn m9() {}
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/51575
   = help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable

error[E0658]: efiapi ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:66:12
   |
LL |     extern "efiapi" fn m10() {}
   |            ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65815
   = help: add `#![feature(abi_efiapi)]` to the crate attributes to enable

error[E0658]: intrinsics are subject to change
  --> $DIR/feature-gate-abi.rs:71:12
   |
LL |     extern "rust-intrinsic" fn im1() {}
   |            ^^^^^^^^^^^^^^^^
   |
   = help: add `#![feature(intrinsics)]` to the crate attributes to enable

error[E0658]: platform intrinsics are experimental and possibly buggy
  --> $DIR/feature-gate-abi.rs:73:12
   |
LL |     extern "platform-intrinsic" fn im2() {}
   |            ^^^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/27731
   = help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable

error[E0658]: vectorcall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:75:12
   |
LL |     extern "vectorcall" fn im3() {}
   |            ^^^^^^^^^^^^
   |
   = help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable

error[E0658]: rust-call ABI is subject to change
  --> $DIR/feature-gate-abi.rs:76:12
   |
LL |     extern "rust-call" fn im4() {}
   |            ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29625
   = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable

error[E0658]: msp430-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:77:12
   |
LL |     extern "msp430-interrupt" fn im5() {}
   |            ^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38487
   = help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable

error[E0658]: PTX ABIs are experimental and subject to change
  --> $DIR/feature-gate-abi.rs:78:12
   |
LL |     extern "ptx-kernel" fn im6() {}
   |            ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38788
   = help: add `#![feature(abi_ptx)]` to the crate attributes to enable

error[E0658]: x86-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:79:12
   |
LL |     extern "x86-interrupt" fn im7() {}
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/40180
   = help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable

error[E0658]: thiscall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:80:12
   |
LL |     extern "thiscall" fn im8() {}
   |            ^^^^^^^^^^
   |
   = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable

error[E0658]: amdgpu-kernel ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:81:12
   |
LL |     extern "amdgpu-kernel" fn im9() {}
   |            ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/51575
   = help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable

error[E0658]: efiapi ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:82:12
   |
LL |     extern "efiapi" fn im10() {}
   |            ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65815
   = help: add `#![feature(abi_efiapi)]` to the crate attributes to enable

error[E0658]: intrinsics are subject to change
  --> $DIR/feature-gate-abi.rs:86:18
   |
LL | type A1 = extern "rust-intrinsic" fn();
   |                  ^^^^^^^^^^^^^^^^
   |
   = help: add `#![feature(intrinsics)]` to the crate attributes to enable

error[E0658]: platform intrinsics are experimental and possibly buggy
  --> $DIR/feature-gate-abi.rs:87:18
   |
LL | type A2 = extern "platform-intrinsic" fn();
   |                  ^^^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/27731
   = help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable

error[E0658]: vectorcall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:88:18
   |
LL | type A3 = extern "vectorcall" fn();
   |                  ^^^^^^^^^^^^
   |
   = help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable

error[E0658]: rust-call ABI is subject to change
  --> $DIR/feature-gate-abi.rs:89:18
   |
LL | type A4 = extern "rust-call" fn();
   |                  ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29625
   = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable

error[E0658]: msp430-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:90:18
   |
LL | type A5 = extern "msp430-interrupt" fn();
   |                  ^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38487
   = help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable

error[E0658]: PTX ABIs are experimental and subject to change
  --> $DIR/feature-gate-abi.rs:91:18
   |
LL | type A6 = extern "ptx-kernel" fn ();
   |                  ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38788
   = help: add `#![feature(abi_ptx)]` to the crate attributes to enable

error[E0658]: x86-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:92:18
   |
LL | type A7 = extern "x86-interrupt" fn();
   |                  ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/40180
   = help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable

error[E0658]: thiscall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:93:18
   |
LL | type A8 = extern "thiscall" fn();
   |                  ^^^^^^^^^^
   |
   = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable

error[E0658]: amdgpu-kernel ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:94:18
   |
LL | type A9 = extern "amdgpu-kernel" fn();
   |                  ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/51575
   = help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable

error[E0658]: efiapi ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:95:19
   |
LL | type A10 = extern "efiapi" fn();
   |                   ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65815
   = help: add `#![feature(abi_efiapi)]` to the crate attributes to enable

error[E0658]: intrinsics are subject to change
  --> $DIR/feature-gate-abi.rs:98:8
   |
LL | extern "rust-intrinsic" {}
   |        ^^^^^^^^^^^^^^^^
   |
   = help: add `#![feature(intrinsics)]` to the crate attributes to enable

error[E0658]: platform intrinsics are experimental and possibly buggy
  --> $DIR/feature-gate-abi.rs:99:8
   |
LL | extern "platform-intrinsic" {}
   |        ^^^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/27731
   = help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable

error[E0658]: vectorcall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:100:8
   |
LL | extern "vectorcall" {}
   |        ^^^^^^^^^^^^
   |
   = help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable

error[E0658]: rust-call ABI is subject to change
  --> $DIR/feature-gate-abi.rs:101:8
   |
LL | extern "rust-call" {}
   |        ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29625
   = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable

error[E0658]: msp430-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:102:8
   |
LL | extern "msp430-interrupt" {}
   |        ^^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38487
   = help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable

error[E0658]: PTX ABIs are experimental and subject to change
  --> $DIR/feature-gate-abi.rs:103:8
   |
LL | extern "ptx-kernel" {}
   |        ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/38788
   = help: add `#![feature(abi_ptx)]` to the crate attributes to enable

error[E0658]: x86-interrupt ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:104:8
   |
LL | extern "x86-interrupt" {}
   |        ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/40180
   = help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable

error[E0658]: thiscall is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:105:8
   |
LL | extern "thiscall" {}
   |        ^^^^^^^^^^
   |
   = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable

error[E0658]: amdgpu-kernel ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:106:8
   |
LL | extern "amdgpu-kernel" {}
   |        ^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/51575
   = help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable

error[E0658]: efiapi ABI is experimental and subject to change
  --> $DIR/feature-gate-abi.rs:107:8
   |
LL | extern "efiapi" {}
   |        ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65815
   = help: add `#![feature(abi_efiapi)]` to the crate attributes to enable

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:28:32
   |
LL |     extern "rust-intrinsic" fn m1();
   |                                ^^

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:30:36
   |
LL |     extern "platform-intrinsic" fn m2();
   |                                    ^^

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:13:33
   |
LL | extern "rust-intrinsic" fn f1() {}
   |                                 ^^

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:15:37
   |
LL | extern "platform-intrinsic" fn f2() {}
   |                                     ^^

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:55:37
   |
LL |     extern "rust-intrinsic" fn m1() {}
   |                                     ^^

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:57:41
   |
LL |     extern "platform-intrinsic" fn m2() {}
   |                                         ^^

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:71:38
   |
LL |     extern "rust-intrinsic" fn im1() {}
   |                                      ^^

error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
  --> $DIR/feature-gate-abi.rs:73:42
   |
LL |     extern "platform-intrinsic" fn im2() {}
   |                                          ^^

error: aborting due to 76 previous errors

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