rust/tests/ui/extern/no-mangle-associated-fn.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

38 lines
569 B
Rust
Raw Normal View History

// aux-build: no-mangle-associated-fn.rs
// run-pass
extern crate no_mangle_associated_fn;
struct Foo;
impl Foo {
#[no_mangle]
fn foo() -> u8 {
1
}
}
trait Bar {
fn qux() -> u8;
}
impl Bar for Foo {
#[no_mangle]
fn qux() -> u8 {
4
}
}
fn main() {
extern "Rust" {
fn foo() -> u8;
fn bar() -> u8;
fn baz() -> u8;
fn qux() -> u8;
}
assert_eq!(unsafe { foo() }, 1);
assert_eq!(unsafe { bar() }, 2);
assert_eq!(unsafe { baz() }, 3);
assert_eq!(unsafe { qux() }, 4);
}