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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
#include <stdio.h>
#include <stdint.h>
void _cdecl LooksLikeAPrivateGlobal(int i) {
printf("LooksLikeAPrivateGlobal(%d)\n", i);
fflush(stdout);
}
void _cdecl cdecl_fn_undecorated(int i) {
printf("cdecl_fn_undecorated(%d)\n", i);
fflush(stdout);
}
void _cdecl cdecl_fn_undecorated2(int i) {
printf("cdecl_fn_undecorated2(%d)\n", i);
fflush(stdout);
}
void _cdecl cdecl_fn_noprefix(int i) {
printf("cdecl_fn_noprefix(%d)\n", i);
fflush(stdout);
}
void _cdecl cdecl_fn_decorated(int i) {
printf("cdecl_fn_decorated(%d)\n", i);
fflush(stdout);
}
void __stdcall stdcall_fn_undecorated(int i) {
printf("stdcall_fn_undecorated(%d)\n", i);
fflush(stdout);
}
void __stdcall stdcall_fn_undecorated2(int i) {
printf("stdcall_fn_undecorated2(%d)\n", i);
fflush(stdout);
}
void __stdcall stdcall_fn_noprefix(int i) {
printf("stdcall_fn_noprefix(%d)\n", i);
fflush(stdout);
}
void __stdcall stdcall_fn_decorated(int i) {
printf("stdcall_fn_decorated(%d)\n", i);
fflush(stdout);
}
void __fastcall fastcall_fn_undecorated(int i) {
printf("fastcall_fn_undecorated(%d)\n", i);
fflush(stdout);
}
void __fastcall fastcall_fn_undecorated2(int i) {
printf("fastcall_fn_undecorated2(%d)\n", i);
fflush(stdout);
}
void __fastcall fastcall_fn_noprefix(int i) {
printf("fastcall_fn_noprefix(%d)\n", i);
fflush(stdout);
}
void __fastcall fastcall_fn_decorated(int i) {
printf("fastcall_fn_decorated(%d)\n", i);
fflush(stdout);
}
int extern_variable_undecorated = 0;
__declspec(dllexport) void print_extern_variable_undecorated() {
printf("extern_variable_undecorated value: %d\n", extern_variable_undecorated);
fflush(stdout);
}
int extern_variable_noprefix = 0;
__declspec(dllexport) void print_extern_variable_noprefix() {
printf("extern_variable_noprefix value: %d\n", extern_variable_noprefix);
fflush(stdout);
}
int extern_variable_decorated = 0;
__declspec(dllexport) void print_extern_variable_decorated() {
printf("extern_variable_decorated value: %d\n", extern_variable_decorated);
fflush(stdout);
}
// GCC doesn't support vectorcall: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89485
#ifdef _MSC_VER
void __vectorcall vectorcall_fn_undecorated(int i) {
printf("vectorcall_fn_undecorated(%d)\n", i);
fflush(stdout);
}
void __vectorcall vectorcall_fn_undecorated2(int i) {
printf("vectorcall_fn_undecorated2(%d)\n", i);
fflush(stdout);
}
void __vectorcall vectorcall_fn_noprefix(int i) {
printf("vectorcall_fn_noprefix(%d)\n", i);
fflush(stdout);
}
void __vectorcall vectorcall_fn_decorated(int i) {
printf("vectorcall_fn_decorated(%d)\n", i);
fflush(stdout);
}
#endif
|