]> git.lizzy.rs Git - rust.git/blob - src/test/run-make/raw-dylib-import-name-type/driver.rs
74e9a89fbdf3274c413358eb93a8ed8ad4412609
[rust.git] / src / test / run-make / raw-dylib-import-name-type / driver.rs
1 #![feature(raw_dylib)]
2
3 #[link(name = "extern", kind = "raw-dylib", import_name_type = "undecorated")]
4 extern "C" {
5     fn cdecl_fn_undecorated(i: i32);
6     static mut extern_variable_undecorated: i32;
7 }
8
9 #[link(name = "extern", kind = "raw-dylib", import_name_type = "noprefix")]
10 extern "C" {
11     fn cdecl_fn_noprefix(i: i32);
12     static mut extern_variable_noprefix: i32;
13 }
14
15 #[link(name = "extern", kind = "raw-dylib", import_name_type = "decorated")]
16 extern "C" {
17     fn cdecl_fn_decorated(i: i32);
18     static mut extern_variable_decorated: i32;
19 }
20
21 #[link(name = "extern", kind = "raw-dylib", import_name_type = "undecorated")]
22 extern "stdcall" {
23     fn stdcall_fn_undecorated(i: i32);
24 }
25
26 #[link(name = "extern", kind = "raw-dylib", import_name_type = "noprefix")]
27 extern "stdcall" {
28     fn stdcall_fn_noprefix(i: i32);
29 }
30
31 #[link(name = "extern", kind = "raw-dylib", import_name_type = "decorated")]
32 extern "stdcall" {
33     fn stdcall_fn_decorated(i: i32);
34 }
35
36 #[link(name = "extern", kind = "raw-dylib", import_name_type = "undecorated")]
37 extern "fastcall" {
38     fn fastcall_fn_undecorated(i: i32);
39 }
40
41 #[link(name = "extern", kind = "raw-dylib", import_name_type = "noprefix")]
42 extern "fastcall" {
43     fn fastcall_fn_noprefix(i: i32);
44 }
45
46 #[link(name = "extern", kind = "raw-dylib", import_name_type = "decorated")]
47 extern "fastcall" {
48     fn fastcall_fn_decorated(i: i32);
49 }
50
51 #[link(name = "extern", kind = "raw-dylib")]
52 extern {
53     fn print_extern_variable_undecorated();
54     fn print_extern_variable_noprefix();
55     fn print_extern_variable_decorated();
56 }
57
58 pub fn main() {
59     unsafe {
60         cdecl_fn_undecorated(1);
61         cdecl_fn_noprefix(2);
62         cdecl_fn_decorated(3);
63
64         stdcall_fn_undecorated(4);
65         stdcall_fn_noprefix(5);
66         stdcall_fn_decorated(6);
67
68         fastcall_fn_undecorated(7);
69         fastcall_fn_noprefix(8);
70         fastcall_fn_decorated(9);
71
72         extern_variable_undecorated = 42;
73         print_extern_variable_undecorated();
74         extern_variable_noprefix = 43;
75         print_extern_variable_noprefix();
76         extern_variable_decorated = 44;
77         print_extern_variable_decorated();
78     }
79 }