include: Update stdcall and cdecl definitions in crtdefs.h.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2016-01-29 18:05:46 +09:00
parent 77c313b8d6
commit 206e8b147b
1 changed files with 14 additions and 6 deletions

View File

@ -44,7 +44,7 @@
#ifndef __stdcall
# ifdef __i386__
# ifdef __GNUC__
# ifdef __APPLE__ /* Mac OS X uses a 16-byte aligned stack and not a 4-byte one */
# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__)
# define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__))
# else
# define __stdcall __attribute__((__stdcall__))
@ -55,21 +55,29 @@
# error You need to define __stdcall for your compiler
# endif
# elif defined(__x86_64__) && defined (__GNUC__)
# define __stdcall __attribute__((ms_abi))
# else
# if (__GNUC__ > 5) || ((__GNUC__ == 5) && (__GNUC_MINOR__ >= 3))
# define __stdcall __attribute__((ms_abi)) __attribute__((__force_align_arg_pointer__))
# else
# define __stdcall __attribute__((ms_abi))
# endif
# else /* __i386__ */
# define __stdcall
# endif
# endif /* __i386__ */
#endif /* __stdcall */
#ifndef __cdecl
# if defined(__i386__) && defined(__GNUC__)
# ifdef __APPLE__ /* Mac OS X uses 16-byte aligned stack and not a 4-byte one */
# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__)
# define __cdecl __attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__))
# else
# define __cdecl __attribute__((__cdecl__))
# endif
# elif defined(__x86_64__) && defined (__GNUC__)
# define __cdecl __attribute__((ms_abi))
# if (__GNUC__ > 5) || ((__GNUC__ == 5) && (__GNUC_MINOR__ >= 3))
# define __cdecl __attribute__((ms_abi)) __attribute__((__force_align_arg_pointer__))
# else
# define __cdecl __attribute__((ms_abi))
# endif
# elif !defined(_MSC_VER)
# define __cdecl
# endif