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

