]> git.proxmox.com Git - rustc.git/blob - src/test/run-make/raw-dylib-import-name-type/extern.c
195126d51294ccb58d47eb8d894286b06723fe12
[rustc.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