| error: `extern` block uses type `Foo`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:46:28 |
| | |
| LL | pub fn ptr_type1(size: *const Foo); |
| | ^^^^^^^^^^ not FFI-safe |
| | |
| note: lint level defined here |
| --> $DIR/lint-ctypes.rs:4:9 |
| | |
| LL | #![deny(improper_ctypes)] |
| | ^^^^^^^^^^^^^^^ |
| = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct |
| = note: this struct has unspecified layout |
| note: type defined here |
| --> $DIR/lint-ctypes.rs:24:1 |
| | |
| LL | pub struct Foo; |
| | ^^^^^^^^^^^^^^^ |
| |
| error: `extern` block uses type `Foo`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:47:28 |
| | |
| LL | pub fn ptr_type2(size: *const Foo); |
| | ^^^^^^^^^^ not FFI-safe |
| | |
| = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct |
| = note: this struct has unspecified layout |
| note: type defined here |
| --> $DIR/lint-ctypes.rs:24:1 |
| | |
| LL | pub struct Foo; |
| | ^^^^^^^^^^^^^^^ |
| |
| error: `extern` block uses type `[u32]`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:48:26 |
| | |
| LL | pub fn slice_type(p: &[u32]); |
| | ^^^^^^ not FFI-safe |
| | |
| = help: consider using a raw pointer instead |
| = note: slices have no C equivalent |
| |
| error: `extern` block uses type `str`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:49:24 |
| | |
| LL | pub fn str_type(p: &str); |
| | ^^^^ not FFI-safe |
| | |
| = help: consider using `*const u8` and a length instead |
| = note: string slices have no C equivalent |
| |
| error: `extern` block uses type `std::boxed::Box<u32>`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:50:24 |
| | |
| LL | pub fn box_type(p: Box<u32>); |
| | ^^^^^^^^ not FFI-safe |
| | |
| = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct |
| = note: this struct has unspecified layout |
| |
| error: `extern` block uses type `char`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:51:25 |
| | |
| LL | pub fn char_type(p: char); |
| | ^^^^ not FFI-safe |
| | |
| = help: consider using `u32` or `libc::wchar_t` instead |
| = note: the `char` type has no C equivalent |
| |
| error: `extern` block uses type `i128`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:52:25 |
| | |
| LL | pub fn i128_type(p: i128); |
| | ^^^^ not FFI-safe |
| | |
| = note: 128-bit integers don't currently have a known stable ABI |
| |
| error: `extern` block uses type `u128`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:53:25 |
| | |
| LL | pub fn u128_type(p: u128); |
| | ^^^^ not FFI-safe |
| | |
| = note: 128-bit integers don't currently have a known stable ABI |
| |
| error: `extern` block uses type `dyn std::clone::Clone`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:54:26 |
| | |
| LL | pub fn trait_type(p: &dyn Clone); |
| | ^^^^^^^^^^ not FFI-safe |
| | |
| = note: trait objects have no C equivalent |
| |
| error: `extern` block uses type `(i32, i32)`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:55:26 |
| | |
| LL | pub fn tuple_type(p: (i32, i32)); |
| | ^^^^^^^^^^ not FFI-safe |
| | |
| = help: consider using a struct instead |
| = note: tuples have unspecified layout |
| |
| error: `extern` block uses type `(i32, i32)`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:56:27 |
| | |
| LL | pub fn tuple_type2(p: I32Pair); |
| | ^^^^^^^ not FFI-safe |
| | |
| = help: consider using a struct instead |
| = note: tuples have unspecified layout |
| |
| error: `extern` block uses type `ZeroSize`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:57:25 |
| | |
| LL | pub fn zero_size(p: ZeroSize); |
| | ^^^^^^^^ not FFI-safe |
| | |
| = help: consider adding a member to this struct |
| = note: this struct has no fields |
| note: type defined here |
| --> $DIR/lint-ctypes.rs:20:1 |
| | |
| LL | pub struct ZeroSize; |
| | ^^^^^^^^^^^^^^^^^^^^ |
| |
| error: `extern` block uses type `ZeroSizeWithPhantomData`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:58:33 |
| | |
| LL | pub fn zero_size_phantom(p: ZeroSizeWithPhantomData); |
| | ^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe |
| | |
| = note: composed only of `PhantomData` |
| note: type defined here |
| --> $DIR/lint-ctypes.rs:43:1 |
| | |
| LL | pub struct ZeroSizeWithPhantomData(::std::marker::PhantomData<i32>); |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| error: `extern` block uses type `std::marker::PhantomData<bool>`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:61:12 |
| | |
| LL | -> ::std::marker::PhantomData<bool>; |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe |
| | |
| = note: composed only of `PhantomData` |
| |
| error: `extern` block uses type `fn()`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:62:23 |
| | |
| LL | pub fn fn_type(p: RustFn); |
| | ^^^^^^ not FFI-safe |
| | |
| = help: consider using an `extern fn(...) -> ...` function pointer instead |
| = note: this function pointer has Rust-specific calling convention |
| |
| error: `extern` block uses type `fn()`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:63:24 |
| | |
| LL | pub fn fn_type2(p: fn()); |
| | ^^^^ not FFI-safe |
| | |
| = help: consider using an `extern fn(...) -> ...` function pointer instead |
| = note: this function pointer has Rust-specific calling convention |
| |
| error: `extern` block uses type `std::boxed::Box<u32>`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:64:28 |
| | |
| LL | pub fn fn_contained(p: RustBadRet); |
| | ^^^^^^^^^^ not FFI-safe |
| | |
| = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct |
| = note: this struct has unspecified layout |
| |
| error: `extern` block uses type `i128`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:65:32 |
| | |
| LL | pub fn transparent_i128(p: TransparentI128); |
| | ^^^^^^^^^^^^^^^ not FFI-safe |
| | |
| = note: 128-bit integers don't currently have a known stable ABI |
| |
| error: `extern` block uses type `str`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:66:31 |
| | |
| LL | pub fn transparent_str(p: TransparentStr); |
| | ^^^^^^^^^^^^^^ not FFI-safe |
| | |
| = help: consider using `*const u8` and a length instead |
| = note: string slices have no C equivalent |
| |
| error: `extern` block uses type `std::boxed::Box<u32>`, which is not FFI-safe |
| --> $DIR/lint-ctypes.rs:67:30 |
| | |
| LL | pub fn transparent_fn(p: TransparentBadFn); |
| | ^^^^^^^^^^^^^^^^ not FFI-safe |
| | |
| = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct |
| = note: this struct has unspecified layout |
| |
| error: aborting due to 20 previous errors |
| |