0bf928968b
fixes #130851
43 lines
622 B
Rust
43 lines
622 B
Rust
//@ build-pass
|
|
#![warn(clashing_extern_declarations)]
|
|
|
|
#[repr(C)]
|
|
pub struct A {
|
|
a: [u16; 4],
|
|
}
|
|
#[repr(C)]
|
|
pub struct B {
|
|
b: [u32; 4],
|
|
}
|
|
|
|
pub mod a {
|
|
extern "C" {
|
|
pub fn foo(_: super::A);
|
|
}
|
|
}
|
|
pub mod b {
|
|
extern "C" {
|
|
pub fn foo(_: super::B);
|
|
//~^ WARN `foo` redeclared with a different signature
|
|
}
|
|
}
|
|
|
|
#[repr(C)]
|
|
pub struct G<T> {
|
|
g: [T; 4],
|
|
}
|
|
|
|
pub mod x {
|
|
extern "C" {
|
|
pub fn bar(_: super::G<u16>);
|
|
}
|
|
}
|
|
pub mod y {
|
|
extern "C" {
|
|
pub fn bar(_: super::G<u32>);
|
|
//~^ WARN `bar` redeclared with a different signature
|
|
}
|
|
}
|
|
|
|
fn main() {}
|