]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gdc.test/runnable/extra-files/cpp_abi_tests.cpp
Add D front-end, libphobos library, and D2 testsuite.
[thirdparty/gcc.git] / gcc / testsuite / gdc.test / runnable / extra-files / cpp_abi_tests.cpp
1 struct S{
2 float a;
3 };
4
5 bool passthrough(bool value) { return value; }
6 signed char passthrough(signed char value) { return value; }
7 unsigned char passthrough(unsigned char value) { return value; }
8 char passthrough(char value) { return value; }
9 wchar_t passthrough(wchar_t value) { return value; }
10 short passthrough(short value) { return value; }
11 unsigned short passthrough(unsigned short value) { return value; }
12 int passthrough(int value) { return value; }
13 unsigned int passthrough(unsigned int value) { return value; }
14 long passthrough(long value) { return value; }
15 unsigned long passthrough(unsigned long value) { return value; }
16 long long passthrough(long long value) { return value; }
17 unsigned long long passthrough(unsigned long long value) { return value; }
18 float passthrough(float value) { return value; }
19 double passthrough(double value) { return value; }
20 S passthrough(S value) { return value; }
21
22 bool passthrough_ptr(bool *value) { return *value; }
23 signed char passthrough_ptr(signed char *value) { return *value; }
24 unsigned char passthrough_ptr(unsigned char *value) { return *value; }
25 char passthrough_ptr(char *value) { return *value; }
26 wchar_t passthrough_ptr(wchar_t *value) { return *value; }
27 short passthrough_ptr(short *value) { return *value; }
28 unsigned short passthrough_ptr(unsigned short *value) { return *value; }
29 int passthrough_ptr(int *value) { return *value; }
30 unsigned int passthrough_ptr(unsigned int *value) { return *value; }
31 long passthrough_ptr(long *value) { return *value; }
32 unsigned long passthrough_ptr(unsigned long *value) { return *value; }
33 long long passthrough_ptr(long long *value) { return *value; }
34 unsigned long long passthrough_ptr(unsigned long long *value) { return *value; }
35 float passthrough_ptr(float *value) { return *value; }
36 double passthrough_ptr(double *value) { return *value; }
37 S passthrough_ptr(S *value) { return *value; }
38
39 bool passthrough_ref(bool &value) { return value; }
40 signed char passthrough_ref(signed char &value) { return value; }
41 unsigned char passthrough_ref(unsigned char &value) { return value; }
42 char passthrough_ref(char &value) { return value; }
43 wchar_t passthrough_ref(wchar_t &value) { return value; }
44 short passthrough_ref(short &value) { return value; }
45 unsigned short passthrough_ref(unsigned short &value) { return value; }
46 int passthrough_ref(int &value) { return value; }
47 unsigned int passthrough_ref(unsigned int &value) { return value; }
48 long passthrough_ref(long &value) { return value; }
49 unsigned long passthrough_ref(unsigned long &value) { return value; }
50 long long passthrough_ref(long long &value) { return value; }
51 unsigned long long passthrough_ref(unsigned long long &value) { return value; }
52 float passthrough_ref(float &value) { return value; }
53 double passthrough_ref(double &value) { return value; }
54 S passthrough_ref(S &value) { return value; }
55
56 // Uncomment when mangling is fixed
57 // typedef void(*fn0)();
58 // fn0 passthrough_fn0 (fn0 value) { return value; }
59 // typedef int (*fn1)(int);
60 // fn1 passthrough_fn1 (fn1 value) { return value; }