31 lines
925 B
Rust
31 lines
925 B
Rust
|
#![warn(unused_attributes)]
|
||
|
|
||
|
// Tests that placing the #[no_mangle] attribute on a foreign fn or static emits
|
||
|
// a specialized warning.
|
||
|
// The previous warning only talks about a "function or static" but foreign fns/statics
|
||
|
// are also not allowed to have #[no_mangle]
|
||
|
|
||
|
//@ build-pass
|
||
|
|
||
|
extern "C" {
|
||
|
#[no_mangle]
|
||
|
//~^ WARNING `#[no_mangle]` has no effect on a foreign static
|
||
|
//~^^ WARNING this was previously accepted by the compiler
|
||
|
pub static FOO: u8;
|
||
|
|
||
|
#[no_mangle]
|
||
|
//~^ WARNING `#[no_mangle]` has no effect on a foreign function
|
||
|
//~^^ WARNING this was previously accepted by the compiler
|
||
|
pub fn bar();
|
||
|
}
|
||
|
|
||
|
fn no_new_warn() {
|
||
|
// Should emit the generic "not a function or static" warning
|
||
|
#[no_mangle]
|
||
|
//~^ WARNING attribute should be applied to a free function, impl method or static
|
||
|
//~^^ WARNING this was previously accepted by the compiler
|
||
|
let x = 0_u8;
|
||
|
}
|
||
|
|
||
|
fn main() {}
|