]> git.lizzy.rs Git - rust.git/blob - src/test/run-make/raw-dylib-import-name-type/extern.c
Auto merge of #96711 - emilio:inline-slice-clone, r=nikic
[rust.git] / src / test / run-make / raw-dylib-import-name-type / extern.c
1 #include <stdio.h>
2 #include <stdint.h>
3
4 void _cdecl cdecl_fn_undecorated(int i) {
5     printf("cdecl_fn_undecorated(%d)\n", i);
6     fflush(stdout);
7 }
8
9 void _cdecl cdecl_fn_undecorated2(int i) {
10     printf("cdecl_fn_undecorated2(%d)\n", i);
11     fflush(stdout);
12 }
13
14 void _cdecl cdecl_fn_noprefix(int i) {
15     printf("cdecl_fn_noprefix(%d)\n", i);
16     fflush(stdout);
17 }
18
19 void _cdecl cdecl_fn_decorated(int i) {
20     printf("cdecl_fn_decorated(%d)\n", i);
21     fflush(stdout);
22 }
23
24 void __stdcall stdcall_fn_undecorated(int i) {
25     printf("stdcall_fn_undecorated(%d)\n", i);
26     fflush(stdout);
27 }
28
29 void __stdcall stdcall_fn_undecorated2(int i) {
30     printf("stdcall_fn_undecorated2(%d)\n", i);
31     fflush(stdout);
32 }
33
34 void __stdcall stdcall_fn_noprefix(int i) {
35     printf("stdcall_fn_noprefix(%d)\n", i);
36     fflush(stdout);
37 }
38
39 void __stdcall stdcall_fn_decorated(int i) {
40     printf("stdcall_fn_decorated(%d)\n", i);
41     fflush(stdout);
42 }
43
44 void __fastcall fastcall_fn_undecorated(int i) {
45     printf("fastcall_fn_undecorated(%d)\n", i);
46     fflush(stdout);
47 }
48
49 void __fastcall fastcall_fn_undecorated2(int i) {
50     printf("fastcall_fn_undecorated2(%d)\n", i);
51     fflush(stdout);
52 }
53
54 void __fastcall fastcall_fn_noprefix(int i) {
55     printf("fastcall_fn_noprefix(%d)\n", i);
56     fflush(stdout);
57 }
58
59 void __fastcall fastcall_fn_decorated(int i) {
60     printf("fastcall_fn_decorated(%d)\n", i);
61     fflush(stdout);
62 }
63
64 int extern_variable_undecorated = 0;
65 __declspec(dllexport) void print_extern_variable_undecorated() {
66     printf("extern_variable_undecorated value: %d\n", extern_variable_undecorated);
67     fflush(stdout);
68 }
69
70 int extern_variable_noprefix = 0;
71 __declspec(dllexport) void print_extern_variable_noprefix() {
72     printf("extern_variable_noprefix value: %d\n", extern_variable_noprefix);
73     fflush(stdout);
74 }
75
76 int extern_variable_decorated = 0;
77 __declspec(dllexport) void print_extern_variable_decorated() {
78     printf("extern_variable_decorated value: %d\n", extern_variable_decorated);
79     fflush(stdout);
80 }
81
82 // GCC doesn't support vectorcall: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89485
83 #ifdef _MSC_VER
84 void __vectorcall vectorcall_fn_undecorated(int i) {
85     printf("vectorcall_fn_undecorated(%d)\n", i);
86     fflush(stdout);
87 }
88
89 void __vectorcall vectorcall_fn_undecorated2(int i) {
90     printf("vectorcall_fn_undecorated2(%d)\n", i);
91     fflush(stdout);
92 }
93
94 void __vectorcall vectorcall_fn_noprefix(int i) {
95     printf("vectorcall_fn_noprefix(%d)\n", i);
96     fflush(stdout);
97 }
98
99 void __vectorcall vectorcall_fn_decorated(int i) {
100     printf("vectorcall_fn_decorated(%d)\n", i);
101     fflush(stdout);
102 }
103 #endif