/* ACC -- Automatic Compiler Configuration Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer All Rights Reserved. This software is a copyrighted work licensed under the terms of the GNU General Public License. Please consult the file "ACC_LICENSE" for details. Markus F.X.J. Oberhumer http://www.oberhumer.com/ */ /*********************************************************************** // ************************************************************************/ #if (ACC_CC_GNUC >= 0x020800ul) /* 2.8.0 */ # define __acc_gnuc_extension__ __extension__ #else # define __acc_gnuc_extension__ #endif #if (SIZEOF_LONG_LONG > 0) __acc_gnuc_extension__ typedef long long acc_llong_t; #endif #if (SIZEOF_UNSIGNED_LONG_LONG > 0) __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t; #endif #if (!(SIZEOF_SHORT > 0 && SIZEOF_INT > 0 && SIZEOF_LONG > 0)) # error "missing defines for sizes" #endif #if (!(SIZEOF_PTRDIFF_T > 0 && SIZEOF_SIZE_T > 0 && SIZEOF_VOID_P > 0 && SIZEOF_CHAR_P > 0)) # error "missing defines for sizes" #endif /*********************************************************************** // some types: // required: least & fast: acc_int32l_t, acc_int32f_t // optional: exact32 acc_int32e_t // optional: least64 acc_int64l_t ************************************************************************/ /* acc_int32e_t is int32_t in terminology */ #if !defined(acc_int32e_t) #if (SIZEOF_INT == 4) # define acc_int32e_t int # define acc_uint32e_t unsigned int # define ACC_INT32E_C(c) c # define ACC_UINT32E_C(c) c##U #elif (SIZEOF_LONG == 4) # define acc_int32e_t long int # define acc_uint32e_t unsigned long int # define ACC_INT32E_C(c) c##L # define ACC_UINT32E_C(c) c##UL #elif (SIZEOF_SHORT == 4) # define acc_int32e_t short int # define acc_uint32e_t unsigned short int # define ACC_INT32E_C(c) c # define ACC_UINT32E_C(c) c##U #elif (SIZEOF_LONG_LONG == 4 && SIZEOF_UNSIGNED_LONG_LONG == 4) # define acc_int32e_t acc_llong_t # define acc_uint32e_t acc_ullong_t # define ACC_INT32E_C(c) c##LL # define ACC_UINT32E_C(c) c##ULL #elif (SIZEOF___INT32 == 4 && SIZEOF_UNSIGNED___INT32 == 4) # define acc_int32e_t __int32 # define acc_uint32e_t unsigned __int32 # if (SIZEOF_INT > 4) # define ACC_INT32E_C(c) c # define ACC_UINT32E_C(c) c##U # elif (SIZEOF_LONG > 4) # define ACC_INT32E_C(c) c##L # define ACC_UINT32E_C(c) c##UL # else # define ACC_INT32E_C(c) c##i32 # define ACC_UINT32E_C(c) c##ui32 # endif #else /* no exact 32-bit integral type on this machine */ #endif #endif #if defined(acc_int32e_t) # define SIZEOF_ACC_INT32E_T 4 #endif /* acc_int32l_t is int_least32_t in terminology */ #if !defined(acc_int32l_t) #if defined(acc_int32e_t) # define acc_int32l_t acc_int32e_t # define acc_uint32l_t acc_uint32e_t # define ACC_INT32L_C(c) ACC_INT32E_C(c) # define ACC_UINT32L_C(c) ACC_UINT32E_C(c) # define SIZEOF_ACC_INT32L_T SIZEOF_ACC_INT32E_T #elif (SIZEOF_INT > 4) # define acc_int32l_t int # define acc_uint32l_t unsigned int # define ACC_INT32L_C(c) c # define ACC_UINT32L_C(c) c##U # define SIZEOF_ACC_INT32L_T SIZEOF_INT #elif (SIZEOF_LONG > 4) # define acc_int32l_t long int # define acc_uint32l_t unsigned long int # define ACC_INT32L_C(c) c##L # define ACC_UINT32L_C(c) c##UL # define SIZEOF_ACC_INT32L_T SIZEOF_LONG #else # error "acc_int32l_t" #endif #endif /* acc_int32f_t is int_fast32_t in terminology */ #if !defined(acc_int32f_t) #if (SIZEOF_INT >= 4) # define acc_int32f_t int # define acc_uint32f_t unsigned int # define ACC_INT32F_C(c) c # define ACC_UINT32F_C(c) c##U # define SIZEOF_ACC_INT32F_T SIZEOF_INT #elif (SIZEOF_LONG >= 4) # define acc_int32f_t long int # define acc_uint32f_t unsigned long int # define ACC_INT32F_C(c) c##L # define ACC_UINT32F_C(c) c##UL # define SIZEOF_ACC_INT32F_T SIZEOF_LONG #elif defined(acc_int32e_t) # define acc_int32f_t acc_int32e_t # define acc_uint32f_t acc_uint32e_t # define ACC_INT32F_C(c) ACC_INT32E_C(c) # define ACC_UINT32F_C(c) ACC_UINT32E_C(c) # define SIZEOF_ACC_INT32F_T SIZEOF_ACC_INT32E_T #else # error "acc_int32f_t" #endif #endif /* acc_int64l_t is int_least64_t in terminology */ #if !defined(acc_int64l_t) #if (SIZEOF___INT64 >= 8 && SIZEOF_UNSIGNED___INT64 >= 8) # if (ACC_CC_BORLANDC) && !defined(ACC_CONFIG_PREFER___INT64) # define ACC_CONFIG_PREFER___INT64 1 # endif #endif #if (SIZEOF_INT >= 8) # define acc_int64l_t int # define acc_uint64l_t unsigned int # define ACC_INT64L_C(c) c # define ACC_UINT64L_C(c) c##U # define SIZEOF_ACC_INT64L_T SIZEOF_INT #elif (SIZEOF_LONG >= 8) # define acc_int64l_t long int # define acc_uint64l_t unsigned long int # define ACC_INT64L_C(c) c##L # define ACC_UINT64L_C(c) c##UL # define SIZEOF_ACC_INT64L_T SIZEOF_LONG #elif (SIZEOF_LONG_LONG >= 8 && SIZEOF_UNSIGNED_LONG_LONG >= 8) && !defined(ACC_CONFIG_PREFER___INT64) # define acc_int64l_t acc_llong_t # define acc_uint64l_t acc_ullong_t # if (ACC_CC_BORLANDC) # define ACC_INT64L_C(c) ((c) + 0ll) # define ACC_UINT64L_C(c) ((c) + 0ull) # else # define ACC_INT64L_C(c) c##LL # define ACC_UINT64L_C(c) c##ULL # endif # define SIZEOF_ACC_INT64L_T SIZEOF_LONG_LONG #elif (SIZEOF___INT64 >= 8 && SIZEOF_UNSIGNED___INT64 >= 8) # define acc_int64l_t __int64 # define acc_uint64l_t unsigned __int64 # if (ACC_CC_BORLANDC) # define ACC_INT64L_C(c) ((c) + 0i64) # define ACC_UINT64L_C(c) ((c) + 0ui64) # else # define ACC_INT64L_C(c) c##i64 # define ACC_UINT64L_C(c) c##ui64 # endif # define SIZEOF_ACC_INT64L_T SIZEOF___INT64 #else /* no least 64-bit integral type on this machine */ #endif #endif #if !defined(acc_intptr_t) #if (ACC_ARCH_IA32 && ACC_CC_MSC && (_MSC_VER >= 1300)) typedef __w64 int acc_intptr_t; typedef __w64 unsigned int acc_uintptr_t; # define acc_intptr_t acc_intptr_t # define acc_uintptr_t acc_uintptr_t # define SIZEOF_ACC_INTPTR_T SIZEOF_INT #elif (SIZEOF_INT >= SIZEOF_VOID_P) # define acc_intptr_t int # define acc_uintptr_t unsigned int # define SIZEOF_ACC_INTPTR_T SIZEOF_INT #elif (SIZEOF_LONG >= SIZEOF_VOID_P) # define acc_intptr_t long # define acc_uintptr_t unsigned long # define SIZEOF_ACC_INTPTR_T SIZEOF_LONG #elif (SIZEOF_ACC_INT64L_T >= SIZEOF_VOID_P) # define acc_intptr_t acc_int64l_t # define acc_uintptr_t acc_uint64l_t # define SIZEOF_ACC_INTPTR_T SIZEOF_ACC_INT64L_T #else # error "acc_intptr_t" #endif #endif /* workaround for broken compilers */ #if (ACC_BROKEN_INTEGRAL_CONSTANTS) # undef ACC_INT32E_C # undef ACC_UINT32E_C # undef ACC_INT32L_C # undef ACC_UINT32L_C # undef ACC_INT32F_C # undef ACC_UINT32F_C # if (SIZEOF_INT == 4) # define ACC_INT32E_C(c) ((c) + 0) # define ACC_UINT32E_C(c) ((c) + 0U) # define ACC_INT32L_C(c) ((c) + 0) # define ACC_UINT32L_C(c) ((c) + 0U) # define ACC_INT32F_C(c) ((c) + 0) # define ACC_UINT32F_C(c) ((c) + 0U) # elif (SIZEOF_LONG == 4) # define ACC_INT32E_C(c) ((c) + 0L) # define ACC_UINT32E_C(c) ((c) + 0UL) # define ACC_INT32L_C(c) ((c) + 0L) # define ACC_UINT32L_C(c) ((c) + 0UL) # define ACC_INT32F_C(c) ((c) + 0L) # define ACC_UINT32F_C(c) ((c) + 0UL) # else # error "integral constants" # endif #endif /*********************************************************************** // calling conventions ************************************************************************/ #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64) # if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC) # elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC) # define __acc_cdecl __cdecl # define __acc_cdecl_atexit # define __acc_cdecl_main __cdecl # if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC)) # define __acc_cdecl_qsort __pascal # elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC)) # define __acc_cdecl_qsort _stdcall # else # define __acc_cdecl_qsort __cdecl # endif # elif (ACC_CC_WATCOMC) # define __acc_cdecl __cdecl # else # define __acc_cdecl __cdecl # define __acc_cdecl_atexit __cdecl # define __acc_cdecl_main __cdecl # define __acc_cdecl_qsort __cdecl # endif # if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC) # elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC)) # define __acc_cdecl_sighandler __pascal # elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC)) # define __acc_cdecl_sighandler _stdcall # elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE) # define __acc_cdecl_sighandler __clrcall # elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700)) # if defined(_DLL) # define __acc_cdecl_sighandler _far _cdecl _loadds # elif defined(_MT) # define __acc_cdecl_sighandler _far _cdecl # else # define __acc_cdecl_sighandler _cdecl # endif # else # define __acc_cdecl_sighandler __cdecl # endif #elif (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC)) # define __acc_cdecl cdecl #endif #if !defined(__acc_cdecl) # define __acc_cdecl #endif #if !defined(__acc_cdecl_atexit) # define __acc_cdecl_atexit #endif #if !defined(__acc_cdecl_main) # define __acc_cdecl_main #endif #if !defined(__acc_cdecl_qsort) # define __acc_cdecl_qsort #endif #if !defined(__acc_cdecl_sighandler) # define __acc_cdecl_sighandler #endif #if !defined(__acc_cdecl_va) # define __acc_cdecl_va __acc_cdecl #endif #if (ACC_BROKEN_CDECL_ALT_SYNTAX) typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(int); #elif defined(RETSIGTYPE) typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(int); #else typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(int); #endif /* vi:ts=4:et */