New ACC version.

This commit is contained in:
Markus F.X.J. Oberhumer 2006-08-24 12:39:45 +02:00
parent 04ddc8003f
commit 4f80066dcb

View File

@ -37,7 +37,7 @@
#ifndef __ACC_H_INCLUDED
#define __ACC_H_INCLUDED 1
#define ACC_VERSION 20060404L
#define ACC_VERSION 20060823L
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
# define __CYGWIN__ __CYGWIN32__
#endif
@ -301,6 +301,17 @@
#if defined(_CRAY) && defined(_CRAY1)
# define ACC_BROKEN_SIGNED_RIGHT_SHIFT 1
#endif
#define ACC_PP_STRINGIZE(x) #x
#define ACC_PP_MACRO_EXPAND(x) ACC_PP_STRINGIZE(x)
#define ACC_PP_CONCAT2(a,b) a ## b
#define ACC_PP_CONCAT3(a,b,c) a ## b ## c
#define ACC_PP_CONCAT4(a,b,c,d) a ## b ## c ## d
#define ACC_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
#define ACC_PP_ECONCAT2(a,b) ACC_PP_CONCAT2(a,b)
#define ACC_PP_ECONCAT3(a,b,c) ACC_PP_CONCAT3(a,b,c)
#define ACC_PP_ECONCAT4(a,b,c,d) ACC_PP_CONCAT4(a,b,c,d)
#define ACC_PP_ECONCAT5(a,b,c,d,e) ACC_PP_CONCAT5(a,b,c,d,e)
#if 1
#define ACC_CPP_STRINGIZE(x) #x
#define ACC_CPP_MACRO_EXPAND(x) ACC_CPP_STRINGIZE(x)
#define ACC_CPP_CONCAT2(a,b) a ## b
@ -311,6 +322,7 @@
#define ACC_CPP_ECONCAT3(a,b,c) ACC_CPP_CONCAT3(a,b,c)
#define ACC_CPP_ECONCAT4(a,b,c,d) ACC_CPP_CONCAT4(a,b,c,d)
#define ACC_CPP_ECONCAT5(a,b,c,d,e) ACC_CPP_CONCAT5(a,b,c,d,e)
#endif
#define __ACC_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o))
#if 1 && defined(__cplusplus)
# if !defined(__STDC_CONSTANT_MACROS)
@ -509,14 +521,14 @@
# define ACC_CC_CILLY 1
# define ACC_INFO_CC "Cilly"
# if defined(__CILLY__)
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__CILLY__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__CILLY__)
# else
# define ACC_INFO_CCVER "unknown"
# endif
#elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
# define ACC_CC_SDCC 1
# define ACC_INFO_CC "sdcc"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(SDCC)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(SDCC)
#elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
# define ACC_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
# define ACC_INFO_CC "Pathscale C"
@ -524,7 +536,7 @@
#elif defined(__INTEL_COMPILER)
# define ACC_CC_INTELC 1
# define ACC_INFO_CC "Intel C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__INTEL_COMPILER)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__INTEL_COMPILER)
# if defined(_WIN32) || defined(_WIN64)
# define ACC_CC_SYNTAX_MSC 1
# else
@ -533,9 +545,13 @@
#elif defined(__POCC__) && defined(_WIN32)
# define ACC_CC_PELLESC 1
# define ACC_INFO_CC "Pelles C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__POCC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__POCC__)
#elif defined(__llvm__) && defined(__GNUC__) && defined(__VERSION__)
# define ACC_CC_LLVM 1
# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
# define ACC_CC_LLVM (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
# else
# define ACC_CC_LLVM (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
# endif
# define ACC_INFO_CC "llvm-gcc"
# define ACC_INFO_CCVER __VERSION__
#elif defined(__GNUC__) && defined(__VERSION__)
@ -555,23 +571,23 @@
#elif defined(__AZTEC_C__)
# define ACC_CC_AZTECC 1
# define ACC_INFO_CC "Aztec C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__AZTEC_C__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__AZTEC_C__)
#elif defined(__BORLANDC__)
# define ACC_CC_BORLANDC 1
# define ACC_INFO_CC "Borland C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__BORLANDC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__BORLANDC__)
#elif defined(_CRAYC) && defined(_RELEASE)
# define ACC_CC_CRAYC 1
# define ACC_INFO_CC "Cray C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(_RELEASE)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_RELEASE)
#elif defined(__DMC__) && defined(__SC__)
# define ACC_CC_DMC 1
# define ACC_INFO_CC "Digital Mars C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__DMC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DMC__)
#elif defined(__DECC)
# define ACC_CC_DECC 1
# define ACC_INFO_CC "DEC C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__DECC)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DECC)
#elif defined(__HIGHC__)
# define ACC_CC_HIGHC 1
# define ACC_INFO_CC "MetaWare High C"
@ -580,18 +596,18 @@
# define ACC_CC_IARC 1
# define ACC_INFO_CC "IAR C"
# if defined(__VER__)
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__VER__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__VER__)
# else
# define ACC_INFO_CCVER "unknown"
# endif
#elif defined(__IBMC__)
# define ACC_CC_IBMC 1
# define ACC_INFO_CC "IBM C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__IBMC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMC__)
#elif defined(__KEIL__) && defined(__C166__)
# define ACC_CC_KEILC 1
# define ACC_INFO_CC "Keil C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__C166__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__C166__)
#elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
# define ACC_CC_LCCWIN32 1
# define ACC_INFO_CC "lcc-win32"
@ -600,7 +616,7 @@
# define ACC_CC_LCC 1
# define ACC_INFO_CC "lcc"
# if defined(__LCC_VERSION__)
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__LCC_VERSION__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__LCC_VERSION__)
# else
# define ACC_INFO_CCVER "unknown"
# endif
@ -608,14 +624,14 @@
# define ACC_CC_MSC 1
# define ACC_INFO_CC "Microsoft C"
# if defined(_MSC_FULL_VER)
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(_MSC_VER) "." ACC_CPP_MACRO_EXPAND(_MSC_FULL_VER)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
# else
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(_MSC_VER)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER)
# endif
#elif defined(__MWERKS__)
# define ACC_CC_MWERKS 1
# define ACC_INFO_CC "Metrowerks C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__MWERKS__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__MWERKS__)
#elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
# define ACC_CC_NDPC 1
# define ACC_INFO_CC "Microway NDP C"
@ -623,7 +639,7 @@
#elif defined(__PACIFIC__)
# define ACC_CC_PACIFICC 1
# define ACC_INFO_CC "Pacific C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__PACIFIC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PACIFIC__)
#elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
# define ACC_CC_PGI 1
# define ACC_INFO_CC "Portland Group PGI C"
@ -631,16 +647,16 @@
#elif defined(__PUREC__) && defined(__TOS__)
# define ACC_CC_PUREC 1
# define ACC_INFO_CC "Pure C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__PUREC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PUREC__)
#elif defined(__SC__) && defined(__ZTC__)
# define ACC_CC_SYMANTECC 1
# define ACC_INFO_CC "Symantec C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__SC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SC__)
#elif defined(__SUNPRO_C)
# define ACC_INFO_CC "SunPro C"
# if ((__SUNPRO_C)+0 > 0)
# define ACC_CC_SUNPROC __SUNPRO_C
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__SUNPRO_C)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_C)
# else
# define ACC_CC_SUNPROC 1
# define ACC_INFO_CCVER "unknown"
@ -649,7 +665,7 @@
# define ACC_INFO_CC "SunPro C"
# if ((__SUNPRO_CC)+0 > 0)
# define ACC_CC_SUNPROC __SUNPRO_CC
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__SUNPRO_CC)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_CC)
# else
# define ACC_CC_SUNPROC 1
# define ACC_INFO_CCVER "unknown"
@ -657,26 +673,26 @@
#elif defined(__TINYC__)
# define ACC_CC_TINYC 1
# define ACC_INFO_CC "Tiny C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__TINYC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TINYC__)
#elif defined(__TSC__)
# define ACC_CC_TOPSPEEDC 1
# define ACC_INFO_CC "TopSpeed C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__TSC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TSC__)
#elif defined(__WATCOMC__)
# define ACC_CC_WATCOMC 1
# define ACC_INFO_CC "Watcom C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__WATCOMC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__WATCOMC__)
#elif defined(__TURBOC__)
# define ACC_CC_TURBOC 1
# define ACC_INFO_CC "Turbo C"
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__TURBOC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TURBOC__)
#elif defined(__ZTC__)
# define ACC_CC_ZORTECHC 1
# define ACC_INFO_CC "Zortech C"
# if (__ZTC__ == 0x310)
# define ACC_INFO_CCVER "0x310"
# else
# define ACC_INFO_CCVER ACC_CPP_MACRO_EXPAND(__ZTC__)
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__ZTC__)
# endif
#else
# define ACC_CC_UNKNOWN 1
@ -1299,12 +1315,14 @@ extern "C" {
# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
# define ACC_ABI_LITTLE_ENDIAN 1
#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
# define ACC_ABI_LITTLE_ENDIAN 1
#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
# define ACC_ABI_LITTLE_ENDIAN 1
#elif 1 && defined(__pe__)
# define ACC_ABI_LITTLE_ENDIAN 1
#endif
#endif
#if defined(ACC_ABI_BIG_ENDIAN) && defined(ACC_ABI_LITTLE_ENDIAN)
@ -1378,12 +1396,15 @@ extern "C" {
#endif
#endif
#if (ACC_CC_GNUC >= 0x020800ul)
# define __acc_gnuc_extension__ __extension__
# define __acc_gnuc_extension__ __extension__
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_gnuc_extension__ __extension__
# define __acc_gnuc_extension__ __extension__
#else
# define __acc_gnuc_extension__
#endif
#if !defined(__acc_ua_volatile)
# define __acc_ua_volatile volatile
#endif
#if !defined(__acc_alignof)
#if (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
# define __acc_alignof(e) __alignof__(e)
@ -1393,6 +1414,36 @@ extern "C" {
# define __acc_alignof(e) __alignof(e)
#endif
#endif
#if defined(__acc_alignof)
# define __acc_HAVE_alignof 1
#endif
#if !defined(__acc_constructor)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_constructor __attribute__((__constructor__,__used__))
#elif (ACC_CC_GNUC >= 0x020700ul)
# define __acc_constructor __attribute__((__constructor__))
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_constructor __attribute__((__constructor__))
#endif
#endif
#if defined(__acc_constructor)
# define __acc_HAVE_constructor 1
#endif
#if !defined(__acc_destructor)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_destructor __attribute__((__destructor__,__used__))
#elif (ACC_CC_GNUC >= 0x020700ul)
# define __acc_destructor __attribute__((__destructor__))
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_destructor __attribute__((__destructor__))
#endif
#endif
#if defined(__acc_destructor)
# define __acc_HAVE_destructor 1
#endif
#if defined(__acc_HAVE_destructor) && !defined(__acc_HAVE_constructor)
# error "this should not happen"
#endif
#if !defined(__acc_inline)
#if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
#elif defined(__cplusplus)
@ -1413,6 +1464,11 @@ extern "C" {
# define __acc_inline inline
#endif
#endif
#if defined(__acc_inline)
# define __acc_HAVE_inline 1
#else
# define __acc_inline
#endif
#if !defined(__acc_forceinline)
#if (ACC_CC_GNUC >= 0x030200ul)
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
@ -1426,6 +1482,11 @@ extern "C" {
# define __acc_forceinline __forceinline
#endif
#endif
#if defined(__acc_forceinline)
# define __acc_HAVE_forceinline 1
#else
# define __acc_forceinline
#endif
#if !defined(__acc_noinline)
#if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
# define __acc_noinline __attribute__((__noinline__,__used__))
@ -1446,7 +1507,12 @@ extern "C" {
# endif
#endif
#endif
#if (defined(__acc_forceinline) || defined(__acc_noinline)) && !defined(__acc_inline)
#if defined(__acc_noinline)
# define __acc_HAVE_noinline 1
#else
# define __acc_noinline
#endif
#if (defined(__acc_HAVE_forceinline) || defined(__acc_HAVE_noinline)) && !defined(__acc_HAVE_inline)
# error "this should not happen"
#endif
#if !defined(__acc_noreturn)
@ -1462,6 +1528,11 @@ extern "C" {
# define __acc_noreturn __declspec(noreturn)
#endif
#endif
#if defined(__acc_noreturn)
# define __acc_HAVE_noreturn 1
#else
# define __acc_noreturn
#endif
#if !defined(__acc_nothrow)
#if (ACC_CC_GNUC >= 0x030300ul)
# define __acc_nothrow __attribute__((__nothrow__))
@ -1475,26 +1546,10 @@ extern "C" {
# define __acc_nothrow __declspec(nothrow)
#endif
#endif
#if !defined(__acc_constructor)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_constructor __attribute__((__constructor__,__used__))
#elif (ACC_CC_GNUC >= 0x020700ul)
# define __acc_constructor __attribute__((__constructor__))
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_constructor __attribute__((__constructor__))
#endif
#endif
#if !defined(__acc_destructor)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_destructor __attribute__((__destructor__,__used__))
#elif (ACC_CC_GNUC >= 0x020700ul)
# define __acc_destructor __attribute__((__destructor__))
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_destructor __attribute__((__destructor__))
#endif
#endif
#if defined(__acc_destructor) && !defined(__acc_constructor)
# error "this should not happen"
#if defined(__acc_nothrow)
# define __acc_HAVE_nothrow 1
#else
# define __acc_nothrow
#endif
#if !defined(__acc_restrict)
#if (ACC_CC_GNUC >= 0x030400ul)
@ -1507,8 +1562,10 @@ extern "C" {
# define __acc_restrict __restrict
#endif
#endif
#if !defined(__acc_ua_volatile)
# define __acc_ua_volatile volatile
#if defined(__acc_restrict)
# define __acc_HAVE_restrict 1
#else
# define __acc_restrict
#endif
#if !defined(__acc_likely) && !defined(__acc_unlikely)
#if (ACC_CC_GNUC >= 0x030200ul)
@ -1522,10 +1579,14 @@ extern "C" {
# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
#endif
#endif
#if !defined(__acc_likely)
#if defined(__acc_likely)
# define __acc_HAVE_likely 1
#else
# define __acc_likely(e) (e)
#endif
#if !defined(__acc_unlikely)
#if defined(__acc_unlikely)
# define __acc_HAVE_unlikely 1
#else
# define __acc_unlikely(e) (e)
#endif
#if !defined(ACC_UNUSED)
@ -2455,6 +2516,45 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
#if defined(acc_int32e_t)
# define ACC_SIZEOF_ACC_INT32E_T 4
#endif
#if !defined(acc_int64e_t)
#if (ACC_SIZEOF___INT64 == 8)
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define ACC_CFG_TYPE_PREFER___INT64 1
# endif
#endif
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
# define acc_int64e_t int
# define acc_uint64e_t unsigned int
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
#elif (ACC_SIZEOF_LONG == 8)
# define acc_int64e_t long int
# define acc_uint64e_t unsigned long int
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
#elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define acc_int64e_t acc_llong_t
# define acc_uint64e_t acc_ullong_t
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0ll)
# define ACC_UINT64_C(c) ((c) + 0ull)
# else
# define ACC_INT64_C(c) c##LL
# define ACC_UINT64_C(c) c##ULL
# endif
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
#elif (ACC_SIZEOF___INT64 == 8)
# define acc_int64e_t __int64
# define acc_uint64e_t unsigned __int64
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0i64)
# define ACC_UINT64_C(c) ((c) + 0ui64)
# else
# define ACC_INT64_C(c) c##i64
# define ACC_UINT64_C(c) c##ui64
# endif
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
#else
#endif
#endif
#if !defined(acc_int32l_t)
#if defined(acc_int32e_t)
# define acc_int32l_t acc_int32e_t
@ -2473,41 +2573,10 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
#endif
#endif
#if !defined(acc_int64l_t)
#if (ACC_SIZEOF___INT64 >= 8)
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define ACC_CFG_TYPE_PREFER___INT64 1
# endif
#endif
#if (ACC_SIZEOF_INT >= 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
# define acc_int64l_t int
# define acc_uint64l_t unsigned int
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_INT
#elif (ACC_SIZEOF_LONG >= 8)
# define acc_int64l_t long int
# define acc_uint64l_t unsigned long int
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_LONG
#elif (ACC_SIZEOF_LONG_LONG >= 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define acc_int64l_t acc_llong_t
# define acc_uint64l_t acc_ullong_t
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0ll)
# define ACC_UINT64_C(c) ((c) + 0ull)
# else
# define ACC_INT64_C(c) c##LL
# define ACC_UINT64_C(c) c##ULL
# endif
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_LONG_LONG
#elif (ACC_SIZEOF___INT64 >= 8)
# define acc_int64l_t __int64
# define acc_uint64l_t unsigned __int64
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0i64)
# define ACC_UINT64_C(c) ((c) + 0ui64)
# else
# define ACC_INT64_C(c) c##i64
# define ACC_UINT64_C(c) c##ui64
# endif
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF___INT64
#if defined(acc_int64e_t)
# define acc_int64l_t acc_int64e_t
# define acc_uint64l_t acc_uint64e_t
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
#else
#endif
#endif
@ -2652,6 +2721,9 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
# define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
#endif
#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
# define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
#endif
#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
# define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
#endif
@ -2863,6 +2935,45 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
#if defined(acc_int32e_t)
# define ACC_SIZEOF_ACC_INT32E_T 4
#endif
#if !defined(acc_int64e_t)
#if (ACC_SIZEOF___INT64 == 8)
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define ACC_CFG_TYPE_PREFER___INT64 1
# endif
#endif
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
# define acc_int64e_t int
# define acc_uint64e_t unsigned int
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
#elif (ACC_SIZEOF_LONG == 8)
# define acc_int64e_t long int
# define acc_uint64e_t unsigned long int
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
#elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define acc_int64e_t acc_llong_t
# define acc_uint64e_t acc_ullong_t
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0ll)
# define ACC_UINT64_C(c) ((c) + 0ull)
# else
# define ACC_INT64_C(c) c##LL
# define ACC_UINT64_C(c) c##ULL
# endif
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
#elif (ACC_SIZEOF___INT64 == 8)
# define acc_int64e_t __int64
# define acc_uint64e_t unsigned __int64
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0i64)
# define ACC_UINT64_C(c) ((c) + 0ui64)
# else
# define ACC_INT64_C(c) c##i64
# define ACC_UINT64_C(c) c##ui64
# endif
# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
#else
#endif
#endif
#if !defined(acc_int32l_t)
#if defined(acc_int32e_t)
# define acc_int32l_t acc_int32e_t
@ -2881,41 +2992,10 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
#endif
#endif
#if !defined(acc_int64l_t)
#if (ACC_SIZEOF___INT64 >= 8)
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define ACC_CFG_TYPE_PREFER___INT64 1
# endif
#endif
#if (ACC_SIZEOF_INT >= 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
# define acc_int64l_t int
# define acc_uint64l_t unsigned int
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_INT
#elif (ACC_SIZEOF_LONG >= 8)
# define acc_int64l_t long int
# define acc_uint64l_t unsigned long int
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_LONG
#elif (ACC_SIZEOF_LONG_LONG >= 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
# define acc_int64l_t acc_llong_t
# define acc_uint64l_t acc_ullong_t
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0ll)
# define ACC_UINT64_C(c) ((c) + 0ull)
# else
# define ACC_INT64_C(c) c##LL
# define ACC_UINT64_C(c) c##ULL
# endif
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_LONG_LONG
#elif (ACC_SIZEOF___INT64 >= 8)
# define acc_int64l_t __int64
# define acc_uint64l_t unsigned __int64
# if (ACC_CC_BORLANDC)
# define ACC_INT64_C(c) ((c) + 0i64)
# define ACC_UINT64_C(c) ((c) + 0ui64)
# else
# define ACC_INT64_C(c) c##i64
# define ACC_UINT64_C(c) c##ui64
# endif
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF___INT64
#if defined(acc_int64e_t)
# define acc_int64l_t acc_int64e_t
# define acc_uint64l_t acc_uint64e_t
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
#else
#endif
#endif
@ -3060,6 +3140,9 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
# define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
#endif
#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
# define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
#endif
#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
# define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
#endif
@ -3236,7 +3319,9 @@ typedef unsigned short wchar_t;
#endif
#endif
#ifndef NULL
#if defined(__cplusplus)
#if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
#define NULL __null
#elif defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void*)0)
@ -3733,8 +3818,10 @@ ACCLIB_EXTERN(int, acc_mkdir) (const char*, unsigned);
ACCLIB_EXTERN(int, acc_rmdir) (const char*);
ACCLIB_EXTERN(int, acc_response) (int*, char***);
ACCLIB_EXTERN(int, acc_set_binmode) (int, int);
ACCLIB_EXTERN(acc_int32l_t, acc_muldiv32) (acc_int32l_t, acc_int32l_t, acc_int32l_t);
ACCLIB_EXTERN(acc_uint32l_t, acc_umuldiv32) (acc_uint32l_t, acc_uint32l_t, acc_uint32l_t);
#if defined(acc_int32e_t)
ACCLIB_EXTERN(acc_int32e_t, acc_muldiv32s) (acc_int32e_t, acc_int32e_t, acc_int32e_t);
ACCLIB_EXTERN(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t, acc_uint32e_t, acc_uint32e_t);
#endif
ACCLIB_EXTERN(void, acc_wildargv) (int*, char***);
ACCLIB_EXTERN_NOINLINE(void, acc_debug_break) (void);
ACCLIB_EXTERN_NOINLINE(void, acc_debug_nop) (void);
@ -4334,7 +4421,21 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(((( (acc_int32f_t)1 << 30) + 1) >> 30) == 1)
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32f_t)
ACCCHK_ASSERT(((( (acc_uint32f_t)1 << 31) + 1) >> 31) == 1)
#if defined(acc_int64e_t)
ACCCHK_ASSERT(sizeof(acc_int64e_t) == 8)
ACCCHK_ASSERT(sizeof(acc_int64e_t) == SIZEOF_ACC_INT64E_T)
ACCCHK_ASSERT(sizeof(acc_uint64e_t) == 8)
ACCCHK_ASSERT(sizeof(acc_int64e_t) == sizeof(acc_uint64e_t))
ACCCHK_ASSERT_IS_SIGNED_T(acc_int64e_t)
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
#else
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64e_t)
#endif
#endif
#if defined(acc_int64l_t)
#if defined(acc_int64e_t)
ACCCHK_ASSERT(sizeof(acc_int64l_t) >= sizeof(acc_int64e_t))
#endif
ACCCHK_ASSERT(sizeof(acc_int64l_t) >= 8)
ACCCHK_ASSERT(sizeof(acc_int64l_t) == SIZEOF_ACC_INT64L_T)
ACCCHK_ASSERT(sizeof(acc_uint64l_t) >= 8)
@ -6193,20 +6294,34 @@ ACCLIB_PUBLIC(int, acc_rmdir) (const char* name)
return rmdir(name);
#endif
}
ACCLIB_PUBLIC(acc_int32l_t, acc_muldiv32) (acc_int32l_t a, acc_int32l_t b, acc_int32l_t x)
#if defined(acc_int32e_t)
ACCLIB_PUBLIC(acc_int32e_t, acc_muldiv32s) (acc_int32e_t a, acc_int32e_t b, acc_int32e_t x)
{
acc_int32l_t r = 0;
if (x == 0) return x;
ACC_UNUSED(a); ACC_UNUSED(b);
acc_int32e_t r = 0;
if __acc_likely(x != 0)
{
#if defined(acc_int64l_t)
r = (acc_int32e_t) (((acc_int64l_t) a * b) / x);
#else
ACC_UNUSED(a); ACC_UNUSED(b);
#endif
}
return r;
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_umuldiv32) (acc_uint32l_t a, acc_uint32l_t b, acc_uint32l_t x)
ACCLIB_PUBLIC(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t a, acc_uint32e_t b, acc_uint32e_t x)
{
acc_uint32l_t r = 0;
if (x == 0) return x;
ACC_UNUSED(a); ACC_UNUSED(b);
acc_uint32e_t r = 0;
if __acc_likely(x != 0)
{
#if defined(acc_int64l_t)
r = (acc_uint32e_t) (((acc_uint64l_t) a * b) / x);
#else
ACC_UNUSED(a); ACC_UNUSED(b);
#endif
}
return r;
}
#endif
#if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
# pragma warn(push)
# pragma warn(disable:2007)