#![deny(improper_ctypes)] | |
#![allow(dead_code)] | |
struct A { | |
x: i32 | |
} | |
#[repr(C, packed)] | |
struct B { | |
x: i32, | |
y: A | |
} | |
#[repr(C)] | |
struct C { | |
x: i32 | |
} | |
type A2 = A; | |
type B2 = B; | |
type C2 = C; | |
#[repr(C)] | |
struct D { | |
x: C, | |
y: A | |
} | |
extern "C" { | |
fn foo(x: A); //~ ERROR type `A`, which is not FFI-safe | |
fn bar(x: B); //~ ERROR type `A` | |
fn baz(x: C); | |
fn qux(x: A2); //~ ERROR type `A` | |
fn quux(x: B2); //~ ERROR type `A` | |
fn corge(x: C2); | |
fn fred(x: D); //~ ERROR type `A` | |
} | |
fn main() { } |