summaryrefslogtreecommitdiffstats
path: root/src/test/run-make/raw-dylib-c/lib.rs
blob: 005ffcdda5c2ed84b76a5c32109a17c6fe9ff0e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#![feature(raw_dylib, native_link_modifiers_verbatim)]

#[link(name = "extern_1.dll", kind = "raw-dylib", modifiers = "+verbatim")]
extern {
    fn extern_fn_1();
}

#[link(name = "extern_2", kind = "raw-dylib")]
extern {
    fn extern_fn_3();
}

pub fn library_function() {
    #[link(name = "extern_1", kind = "raw-dylib")]
    extern {
        fn extern_fn_2();
        fn print_extern_variable();
        static mut extern_variable: i32;
        #[link_name = "extern_fn_4"]
        fn extern_fn_4_renamed();
    }

    unsafe {
        extern_fn_1();
        extern_fn_2();
        extern_fn_3();
        extern_fn_4_renamed();
        extern_variable = 42;
        print_extern_variable();
        extern_variable = -42;
        print_extern_variable();
    }
}

fn main() {
    library_function();
}