Support multiple lock attributes of the same kind on a declaration.
[official-gcc.git] / gcc / testsuite / gcc.dg / callabi / callabi.h
blobd008ad659cbb50f0dca3be1fa6d92ce75a0ccd67
1 /* First the default target definition. */
2 #ifndef __GNUC_VA_LIST
3 #define __GNUC_VA_LIST
4 typedef __builtin_va_list __gnuc_va_list;
5 #endif
7 #ifndef _VA_LIST_DEFINED
8 #define _VA_LIST_DEFINED
9 typedef __gnuc_va_list va_list;
10 #endif
12 #define __va_copy(d,s) __builtin_va_copy(d,s)
13 #define __va_start(v,l) __builtin_va_start(v,l)
14 #define __va_arg(v,l) __builtin_va_arg(v,l)
15 #define __va_end(v) __builtin_va_end(v)
17 #define __ms_va_copy(d,s) __builtin_ms_va_copy(d,s)
18 #define __ms_va_start(v,l) __builtin_ms_va_start(v,l)
19 #define __ms_va_arg(v,l) __builtin_va_arg(v,l)
20 #define __ms_va_end(v) __builtin_ms_va_end(v)
22 #define __sysv_va_copy(d,s) __builtin_sysv_va_copy(d,s)
23 #define __sysv_va_start(v,l) __builtin_sysv_va_start(v,l)
24 #define __sysv_va_arg(v,l) __builtin_va_arg(v,l)
25 #define __sysv_va_end(v) __builtin_sysv_va_end(v)
27 #define CALLABI_NATIVE
29 #ifdef _WIN64
30 #define CALLABI_CROSS __attribute__ ((sysv_abi))
32 #define CROSS_VA_LIST __builtin_sysv_va_list
34 #define CROSS_VA_COPY(d,s) __sysv_va_copy(d,s)
35 #define CROSS_VA_START(v,l) __sysv_va_start(v,l)
36 #define CROSS_VA_ARG(v,l) __sysv_va_arg(v,l)
37 #define CROSS_VA_END(v) __sysv_va_end(v)
39 #else
41 #define CALLABI_CROSS __attribute__ ((ms_abi))
43 #define CROSS_VA_LIST __builtin_ms_va_list
45 #define CROSS_VA_COPY(d,s) __ms_va_copy(d,s)
46 #define CROSS_VA_START(v,l) __ms_va_start(v,l)
47 #define CROSS_VA_ARG(v,l) __ms_va_arg(v,l)
48 #define CROSS_VA_END(v) __ms_va_end(v)
50 #endif