about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/lint/wasm_c_abi_transition.rs57
-rw-r--r--tests/ui/lint/wasm_c_abi_transition.stderr114
2 files changed, 0 insertions, 171 deletions
diff --git a/tests/ui/lint/wasm_c_abi_transition.rs b/tests/ui/lint/wasm_c_abi_transition.rs
deleted file mode 100644
index 411772ae890..00000000000
--- a/tests/ui/lint/wasm_c_abi_transition.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-//@ compile-flags: --target wasm32-unknown-unknown
-//@ needs-llvm-components: webassembly
-//@ add-core-stubs
-//@ build-fail
-
-#![feature(no_core, repr_simd)]
-#![no_core]
-#![crate_type = "lib"]
-#![deny(wasm_c_abi)]
-
-extern crate minicore;
-use minicore::*;
-
-pub extern "C" fn my_fun_trivial(_x: i32, _y: f32) {}
-
-#[repr(C)]
-pub struct MyType(i32, i32);
-pub extern "C" fn my_fun(_x: MyType) {} //~ERROR: wasm ABI transition
-//~^WARN: previously accepted
-
-// This one is ABI-safe as it only wraps a single field,
-// and the return type can be anything.
-#[repr(C)]
-pub struct MySafeType(i32);
-pub extern "C" fn my_fun_safe(_x: MySafeType) -> MyType { loop {} }
-
-// This one not ABI-safe due to the alignment.
-#[repr(C, align(16))]
-pub struct MyAlignedType(i32);
-pub extern "C" fn my_fun_aligned(_x: MyAlignedType) {} //~ERROR: wasm ABI transition
-//~^WARN: previously accepted
-
-// Check call-site warning
-extern "C" {
-    fn other_fun(x: MyType);
-}
-
-pub fn call_other_fun(x: MyType) {
-    unsafe { other_fun(x) } //~ERROR: wasm ABI transition
-    //~^WARN: previously accepted
-}
-
-// Zero-sized types are safe in both ABIs
-#[repr(C)]
-pub struct MyZstType;
-#[allow(improper_ctypes_definitions)]
-pub extern "C" fn zst_safe(_x: (), _y: MyZstType) {}
-
-// The old and new wasm ABI treats simd types like `v128` the same way, so no
-// wasm_c_abi warning should be emitted.
-#[repr(simd)]
-#[allow(non_camel_case_types)]
-pub struct v128([i32; 4]);
-#[target_feature(enable = "simd128")]
-pub extern "C" fn my_safe_simd(x: v128) -> v128 { x }
-//~^ WARN `extern` fn uses type `v128`, which is not FFI-safe
-//~| WARN `extern` fn uses type `v128`, which is not FFI-safe
diff --git a/tests/ui/lint/wasm_c_abi_transition.stderr b/tests/ui/lint/wasm_c_abi_transition.stderr
deleted file mode 100644
index b4526bf8d68..00000000000
--- a/tests/ui/lint/wasm_c_abi_transition.stderr
+++ /dev/null
@@ -1,114 +0,0 @@
-warning: `extern` fn uses type `v128`, which is not FFI-safe
-  --> $DIR/wasm_c_abi_transition.rs:55:35
-   |
-LL | pub extern "C" fn my_safe_simd(x: v128) -> v128 { x }
-   |                                   ^^^^ not FFI-safe
-   |
-   = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
-   = note: this struct has unspecified layout
-note: the type is defined here
-  --> $DIR/wasm_c_abi_transition.rs:53:1
-   |
-LL | pub struct v128([i32; 4]);
-   | ^^^^^^^^^^^^^^^
-   = note: `#[warn(improper_ctypes_definitions)]` on by default
-
-warning: `extern` fn uses type `v128`, which is not FFI-safe
-  --> $DIR/wasm_c_abi_transition.rs:55:44
-   |
-LL | pub extern "C" fn my_safe_simd(x: v128) -> v128 { x }
-   |                                            ^^^^ not FFI-safe
-   |
-   = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
-   = note: this struct has unspecified layout
-note: the type is defined here
-  --> $DIR/wasm_c_abi_transition.rs:53:1
-   |
-LL | pub struct v128([i32; 4]);
-   | ^^^^^^^^^^^^^^^
-
-error: this function definition involves an argument of type `MyType` which is affected by the wasm ABI transition
-  --> $DIR/wasm_c_abi_transition.rs:18:1
-   |
-LL | pub extern "C" fn my_fun(_x: MyType) {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = 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 #138762 <https://github.com/rust-lang/rust/issues/138762>
-   = help: the "C" ABI Rust uses on wasm32-unknown-unknown will change to align with the standard "C" ABI for this target
-note: the lint level is defined here
-  --> $DIR/wasm_c_abi_transition.rs:9:9
-   |
-LL | #![deny(wasm_c_abi)]
-   |         ^^^^^^^^^^
-
-error: this function definition involves an argument of type `MyAlignedType` which is affected by the wasm ABI transition
-  --> $DIR/wasm_c_abi_transition.rs:30:1
-   |
-LL | pub extern "C" fn my_fun_aligned(_x: MyAlignedType) {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = 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 #138762 <https://github.com/rust-lang/rust/issues/138762>
-   = help: the "C" ABI Rust uses on wasm32-unknown-unknown will change to align with the standard "C" ABI for this target
-
-error: this function call involves an argument of type `MyType` which is affected by the wasm ABI transition
-  --> $DIR/wasm_c_abi_transition.rs:39:14
-   |
-LL |     unsafe { other_fun(x) }
-   |              ^^^^^^^^^^^^
-   |
-   = 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 #138762 <https://github.com/rust-lang/rust/issues/138762>
-   = help: the "C" ABI Rust uses on wasm32-unknown-unknown will change to align with the standard "C" ABI for this target
-
-error: aborting due to 3 previous errors; 2 warnings emitted
-
-Future incompatibility report: Future breakage diagnostic:
-error: this function definition involves an argument of type `MyType` which is affected by the wasm ABI transition
-  --> $DIR/wasm_c_abi_transition.rs:18:1
-   |
-LL | pub extern "C" fn my_fun(_x: MyType) {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = 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 #138762 <https://github.com/rust-lang/rust/issues/138762>
-   = help: the "C" ABI Rust uses on wasm32-unknown-unknown will change to align with the standard "C" ABI for this target
-note: the lint level is defined here
-  --> $DIR/wasm_c_abi_transition.rs:9:9
-   |
-LL | #![deny(wasm_c_abi)]
-   |         ^^^^^^^^^^
-
-Future breakage diagnostic:
-error: this function definition involves an argument of type `MyAlignedType` which is affected by the wasm ABI transition
-  --> $DIR/wasm_c_abi_transition.rs:30:1
-   |
-LL | pub extern "C" fn my_fun_aligned(_x: MyAlignedType) {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = 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 #138762 <https://github.com/rust-lang/rust/issues/138762>
-   = help: the "C" ABI Rust uses on wasm32-unknown-unknown will change to align with the standard "C" ABI for this target
-note: the lint level is defined here
-  --> $DIR/wasm_c_abi_transition.rs:9:9
-   |
-LL | #![deny(wasm_c_abi)]
-   |         ^^^^^^^^^^
-
-Future breakage diagnostic:
-error: this function call involves an argument of type `MyType` which is affected by the wasm ABI transition
-  --> $DIR/wasm_c_abi_transition.rs:39:14
-   |
-LL |     unsafe { other_fun(x) }
-   |              ^^^^^^^^^^^^
-   |
-   = 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 #138762 <https://github.com/rust-lang/rust/issues/138762>
-   = help: the "C" ABI Rust uses on wasm32-unknown-unknown will change to align with the standard "C" ABI for this target
-note: the lint level is defined here
-  --> $DIR/wasm_c_abi_transition.rs:9:9
-   |
-LL | #![deny(wasm_c_abi)]
-   |         ^^^^^^^^^^
-