diff options
| author | Jubilee Young <workingjubilee@gmail.com> | 2024-09-21 08:52:50 -0700 |
|---|---|---|
| committer | Jubilee Young <workingjubilee@gmail.com> | 2024-09-21 09:51:14 -0700 |
| commit | e62b5e64a3f5ad34259d8d6ae4ad031083fa6692 (patch) | |
| tree | fa589f73e95902f80455de392cbb4c85f8128ebd | |
| parent | f48c99a0041bb82a750b34cf2570e0e73d6d801c (diff) | |
| download | rust-e62b5e64a3f5ad34259d8d6ae4ad031083fa6692.tar.gz rust-e62b5e64a3f5ad34259d8d6ae4ad031083fa6692.zip | |
tests: Test that `extern "C" fn` ptrs lint on slices
| -rw-r--r-- | tests/ui/lint/extern-C-fnptr-lints-slices.rs | 9 | ||||
| -rw-r--r-- | tests/ui/lint/extern-C-fnptr-lints-slices.stderr | 16 |
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/lint/extern-C-fnptr-lints-slices.rs b/tests/ui/lint/extern-C-fnptr-lints-slices.rs new file mode 100644 index 00000000000..0c35eb37a48 --- /dev/null +++ b/tests/ui/lint/extern-C-fnptr-lints-slices.rs @@ -0,0 +1,9 @@ +#[deny(improper_ctypes_definitions)] + +// It's an improper ctype (a slice) arg in an extern "C" fnptr. + +pub type F = extern "C" fn(&[u8]); +//~^ ERROR: `extern` fn uses type `[u8]`, which is not FFI-safe + + +fn main() {} diff --git a/tests/ui/lint/extern-C-fnptr-lints-slices.stderr b/tests/ui/lint/extern-C-fnptr-lints-slices.stderr new file mode 100644 index 00000000000..d13f93ca96f --- /dev/null +++ b/tests/ui/lint/extern-C-fnptr-lints-slices.stderr @@ -0,0 +1,16 @@ +error: `extern` fn uses type `[u8]`, which is not FFI-safe + --> $DIR/extern-C-fnptr-lints-slices.rs:5:14 + | +LL | pub type F = extern "C" fn(&[u8]); + | ^^^^^^^^^^^^^^^^^^^^ not FFI-safe + | + = help: consider using a raw pointer instead + = note: slices have no C equivalent +note: the lint level is defined here + --> $DIR/extern-C-fnptr-lints-slices.rs:1:8 + | +LL | #[deny(improper_ctypes_definitions)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 1 previous error + |
