src: new ACC version
This commit is contained in:
+52
-33
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
#ifndef __ACC_H_INCLUDED
|
#ifndef __ACC_H_INCLUDED
|
||||||
#define __ACC_H_INCLUDED 1
|
#define __ACC_H_INCLUDED 1
|
||||||
#define ACC_VERSION 20200116L
|
#define ACC_VERSION 20220904L
|
||||||
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
|
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
|
||||||
# define __CYGWIN__ __CYGWIN32__
|
# define __CYGWIN__ __CYGWIN32__
|
||||||
#endif
|
#endif
|
||||||
@@ -435,6 +435,14 @@
|
|||||||
# define ACC_EXTERN_C_BEGIN /*empty*/
|
# define ACC_EXTERN_C_BEGIN /*empty*/
|
||||||
# define ACC_EXTERN_C_END /*empty*/
|
# define ACC_EXTERN_C_END /*empty*/
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(ACC_nullptr)
|
||||||
|
#if defined(__cplusplus) && (__cplusplus-0 >= 201103L)
|
||||||
|
# define ACC_nullptr nullptr
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if !defined(ACC_nullptr)
|
||||||
|
# define ACC_nullptr NULL
|
||||||
|
#endif
|
||||||
#if !defined(__ACC_OS_OVERRIDE)
|
#if !defined(__ACC_OS_OVERRIDE)
|
||||||
#if (ACC_OS_FREESTANDING)
|
#if (ACC_OS_FREESTANDING)
|
||||||
# define ACC_INFO_OS "freestanding"
|
# define ACC_INFO_OS "freestanding"
|
||||||
@@ -3844,9 +3852,9 @@ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) == sizeof(acc_uint_fast6
|
|||||||
# if (ACC_CC_GNUC < 0x025f00ul)
|
# if (ACC_CC_GNUC < 0x025f00ul)
|
||||||
# undef HAVE_SNPRINTF
|
# undef HAVE_SNPRINTF
|
||||||
# undef HAVE_VSNPRINTF
|
# undef HAVE_VSNPRINTF
|
||||||
# else
|
# elif 0
|
||||||
//# define snprintf _snprintf
|
# define snprintf _snprintf
|
||||||
//# define vsnprintf _vsnprintf
|
# define vsnprintf _vsnprintf
|
||||||
# endif
|
# endif
|
||||||
#elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
|
#elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
|
||||||
# if (__MSL__ < 0x8000ul)
|
# if (__MSL__ < 0x8000ul)
|
||||||
@@ -4786,6 +4794,8 @@ void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
|
|||||||
#define __ACC_FALLBACK_STDDEF_H_INCLUDED 1
|
#define __ACC_FALLBACK_STDDEF_H_INCLUDED 1
|
||||||
#if defined(__PTRDIFF_TYPE__)
|
#if defined(__PTRDIFF_TYPE__)
|
||||||
typedef __PTRDIFF_TYPE__ acc_fallback_ptrdiff_t;
|
typedef __PTRDIFF_TYPE__ acc_fallback_ptrdiff_t;
|
||||||
|
#elif defined(_WIN64)
|
||||||
|
typedef long long acc_fallback_ptrdiff_t;
|
||||||
#elif defined(__MIPS_PSX2__)
|
#elif defined(__MIPS_PSX2__)
|
||||||
typedef int acc_fallback_ptrdiff_t;
|
typedef int acc_fallback_ptrdiff_t;
|
||||||
#else
|
#else
|
||||||
@@ -4793,8 +4803,10 @@ typedef long acc_fallback_ptrdiff_t;
|
|||||||
#endif
|
#endif
|
||||||
#if defined(__SIZE_TYPE__)
|
#if defined(__SIZE_TYPE__)
|
||||||
typedef __SIZE_TYPE__ acc_fallback_size_t;
|
typedef __SIZE_TYPE__ acc_fallback_size_t;
|
||||||
|
#elif defined(_WIN64)
|
||||||
|
typedef unsigned long long acc_fallback_ptrdiff_t;
|
||||||
#elif defined(__MIPS_PSX2__)
|
#elif defined(__MIPS_PSX2__)
|
||||||
typedef unsigned int acc_fallback_size_t;
|
typedef unsigned acc_fallback_size_t;
|
||||||
#else
|
#else
|
||||||
typedef unsigned long acc_fallback_size_t;
|
typedef unsigned long acc_fallback_size_t;
|
||||||
#endif
|
#endif
|
||||||
@@ -4816,17 +4828,19 @@ typedef unsigned short wchar_t;
|
|||||||
#define _WCHAR_T_DEFINED 1
|
#define _WCHAR_T_DEFINED 1
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef nullptr
|
#ifndef NULL
|
||||||
#if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
|
#if defined(__cplusplus) && (__cplusplus-0 >= 201103L)
|
||||||
#define nullptr __null
|
#define NULL nullptr
|
||||||
|
#elif defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
|
||||||
|
#define NULL __null
|
||||||
#elif defined(__cplusplus)
|
#elif defined(__cplusplus)
|
||||||
#define nullptr 0
|
#define NULL 0
|
||||||
#else
|
#else
|
||||||
#define nullptr ((void*)0)
|
#define NULL ((void*)0)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
#define offsetof(s,m) ((size_t)((ptrdiff_t)&(((s*)nullptr)->m)))
|
#define offsetof(s,m) ((size_t)((ptrdiff_t)&(((s*)NULL)->m)))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#elif (ACC_LIBC_FREESTANDING)
|
#elif (ACC_LIBC_FREESTANDING)
|
||||||
@@ -5540,7 +5554,7 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
|
|||||||
#if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
|
#if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
|
||||||
#else
|
#else
|
||||||
# define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
|
# define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
|
||||||
const void* klass::acc_cxx_trigger_function() const { return ACC_STATIC_CAST(const void *, 0); }
|
const void* klass::acc_cxx_trigger_function() const { return ACC_STATIC_CAST(const void *, ACC_nullptr); }
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -5740,8 +5754,8 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
|
|||||||
ACCCHK_ASSERT(sizeof(short) == ACC_SIZEOF_SHORT)
|
ACCCHK_ASSERT(sizeof(short) == ACC_SIZEOF_SHORT)
|
||||||
#endif
|
#endif
|
||||||
ACCCHK_ASSERT_IS_SIGNED_T(int)
|
ACCCHK_ASSERT_IS_SIGNED_T(int)
|
||||||
ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
|
ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned)
|
||||||
ACCCHK_ASSERT(sizeof(int) == sizeof(unsigned int))
|
ACCCHK_ASSERT(sizeof(int) == sizeof(unsigned))
|
||||||
#if !(ACC_ABI_I8LP16)
|
#if !(ACC_ABI_I8LP16)
|
||||||
ACCCHK_ASSERT(sizeof(int) >= 2)
|
ACCCHK_ASSERT(sizeof(int) >= 2)
|
||||||
#endif
|
#endif
|
||||||
@@ -5775,9 +5789,13 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
|
|||||||
ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
|
ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
|
||||||
ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
|
ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
|
||||||
#if !(ACC_BROKEN_SIZEOF)
|
#if !(ACC_BROKEN_SIZEOF)
|
||||||
ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(ACC_STATIC_CAST(char*, nullptr) - ACC_STATIC_CAST(char*, nullptr)))
|
#if (ACC_CC_CLANG) && !defined(__cplusplus)
|
||||||
|
ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(ACC_REINTERPRET_CAST(char*, 1) - ACC_REINTERPRET_CAST(char*, 1)))
|
||||||
|
#else
|
||||||
|
ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(ACC_STATIC_CAST(char*, ACC_nullptr) - ACC_STATIC_CAST(char*, ACC_nullptr)))
|
||||||
|
#endif
|
||||||
# if (ACC_HAVE_MM_HUGE_PTR)
|
# if (ACC_HAVE_MM_HUGE_PTR)
|
||||||
ACCCHK_ASSERT(4 == sizeof(ACC_STATIC_CAST(char __huge*, nullptr) - ACC_STATIC_CAST(char __huge*, nullptr)))
|
ACCCHK_ASSERT(4 == sizeof(ACC_STATIC_CAST(char __huge*, 0) - ACC_STATIC_CAST(char __huge*, 0)))
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#if (ACC_SIZEOF_PTRDIFF_T > 0)
|
#if (ACC_SIZEOF_PTRDIFF_T > 0)
|
||||||
@@ -6320,9 +6338,9 @@ ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
|
|||||||
#endif
|
#endif
|
||||||
extern void* volatile acc_vget_ptr__;
|
extern void* volatile acc_vget_ptr__;
|
||||||
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
|
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
|
||||||
void* volatile __attribute__((__used__)) acc_vget_ptr__ = ACC_STATIC_CAST(void *, nullptr);
|
void* volatile __attribute__((__used__)) acc_vget_ptr__ = ACC_STATIC_CAST(void *, ACC_nullptr);
|
||||||
#else
|
#else
|
||||||
void* volatile acc_vget_ptr__ = ACC_STATIC_CAST(void *, nullptr);
|
void* volatile acc_vget_ptr__ = ACC_STATIC_CAST(void *, ACC_nullptr);
|
||||||
#endif
|
#endif
|
||||||
#ifndef __ACCLIB_VGET_BODY
|
#ifndef __ACCLIB_VGET_BODY
|
||||||
#define __ACCLIB_VGET_BODY(T) \
|
#define __ACCLIB_VGET_BODY(T) \
|
||||||
@@ -6753,6 +6771,7 @@ static int __ACCLIB_FUNCNAME(acc_getopt_rotate) (char **p, int first, int middle
|
|||||||
}
|
}
|
||||||
static int __ACCLIB_FUNCNAME(acc_getopt_perror) (acc_getopt_p g, int ret, const char *f, ...)
|
static int __ACCLIB_FUNCNAME(acc_getopt_perror) (acc_getopt_p g, int ret, const char *f, ...)
|
||||||
{
|
{
|
||||||
|
++g->errcount;
|
||||||
if (g->opterr) {
|
if (g->opterr) {
|
||||||
#if defined(HAVE_STDARG_H) && (HAVE_STDARG_H)
|
#if defined(HAVE_STDARG_H) && (HAVE_STDARG_H)
|
||||||
struct { va_list ap; } s;
|
struct { va_list ap; } s;
|
||||||
@@ -6760,10 +6779,9 @@ static int __ACCLIB_FUNCNAME(acc_getopt_perror) (acc_getopt_p g, int ret, const
|
|||||||
g->opterr(g, f, &s);
|
g->opterr(g, f, &s);
|
||||||
va_end(s.ap);
|
va_end(s.ap);
|
||||||
#else
|
#else
|
||||||
g->opterr(g, f, nullptr);
|
g->opterr(g, f, ACC_nullptr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
++g->errcount;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
|
ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
|
||||||
@@ -6781,7 +6799,7 @@ ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
|
|||||||
if (*shortopts == ':')
|
if (*shortopts == ':')
|
||||||
missing_arg_ret = *shortopts++;
|
missing_arg_ret = *shortopts++;
|
||||||
}
|
}
|
||||||
g->optarg = nullptr;
|
g->optarg = ACC_nullptr;
|
||||||
if (g->optopt == -1)
|
if (g->optopt == -1)
|
||||||
g->optopt = g->bad_option;
|
g->optopt = g->bad_option;
|
||||||
if (longind)
|
if (longind)
|
||||||
@@ -6805,8 +6823,8 @@ ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
|
|||||||
if (a[0] == '-' && a[1] == '-') {
|
if (a[0] == '-' && a[1] == '-') {
|
||||||
size_t l = 0;
|
size_t l = 0;
|
||||||
const acc_getopt_longopt_p o;
|
const acc_getopt_longopt_p o;
|
||||||
const acc_getopt_longopt_p o1 = nullptr;
|
const acc_getopt_longopt_p o1 = ACC_nullptr;
|
||||||
const acc_getopt_longopt_p o2 = nullptr;
|
const acc_getopt_longopt_p o2 = ACC_nullptr;
|
||||||
int need_exact = 0;
|
int need_exact = 0;
|
||||||
++g->optind;
|
++g->optind;
|
||||||
if (!a[2])
|
if (!a[2])
|
||||||
@@ -6868,7 +6886,7 @@ ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
|
|||||||
const char *s;
|
const char *s;
|
||||||
acc_label_next_shortopt:
|
acc_label_next_shortopt:
|
||||||
a = g->argv[g->optind] + ++g->shortpos;
|
a = g->argv[g->optind] + ++g->shortpos;
|
||||||
c = (unsigned char) *a++; s = nullptr;
|
c = (unsigned char) *a++; s = ACC_nullptr;
|
||||||
if (c != ':' && shortopts)
|
if (c != ':' && shortopts)
|
||||||
s = strchr(shortopts, c);
|
s = strchr(shortopts, c);
|
||||||
if (!s || s[1] != ':') {
|
if (!s || s[1] != ':') {
|
||||||
@@ -6894,8 +6912,8 @@ ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
if (ordering == ACC_GETOPT_RETURN_IN_ORDER) {
|
if (ordering == ACC_GETOPT_RETURN_IN_ORDER) {
|
||||||
++g->optind;
|
|
||||||
g->optarg = a;
|
g->optarg = a;
|
||||||
|
++g->optind;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
acc_label_eof:
|
acc_label_eof:
|
||||||
@@ -6947,13 +6965,13 @@ ACC_EXTERN_C int __far __pascal GlobalUnlock(const void __near*);
|
|||||||
#endif
|
#endif
|
||||||
ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
|
ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
|
||||||
{
|
{
|
||||||
acc_hvoid_p p = ACC_STATIC_CAST(acc_hvoid_p, 0);
|
acc_hvoid_p p = ACC_STATIC_CAST(acc_hvoid_p, ACC_nullptr);
|
||||||
if (!(size > 0))
|
if (!(size > 0))
|
||||||
return p;
|
return p;
|
||||||
#if 0 && defined(__palmos__)
|
#if 0 && defined(__palmos__)
|
||||||
p = MemPtrNew(size);
|
p = MemPtrNew(size);
|
||||||
#elif !(ACC_HAVE_MM_HUGE_PTR)
|
#elif !(ACC_HAVE_MM_HUGE_PTR)
|
||||||
if (size < ACC_STATIC_CAST(size_t, -1))
|
if (size < (~(ACC_STATIC_CAST(size_t, 0)) & ~(ACC_STATIC_CAST(acc_hsize_t, 0))))
|
||||||
p = malloc(ACC_STATIC_CAST(size_t, size));
|
p = malloc(ACC_STATIC_CAST(size_t, size));
|
||||||
#else
|
#else
|
||||||
if (ACC_STATIC_CAST(long, size) <= 0)
|
if (ACC_STATIC_CAST(long, size) <= 0)
|
||||||
@@ -7203,6 +7221,7 @@ ACCLIB_PUBLIC(long, acc_safe_hwrite) (int fd, const acc_hvoid_p buf, long size)
|
|||||||
__acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
|
__acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
|
||||||
{
|
{
|
||||||
unsigned long r = 228;
|
unsigned long r = 228;
|
||||||
|
ACC_COMPILE_TIME_ASSERT(sizeof(*ts) == 16);
|
||||||
__asm__ __volatile__("syscall\n" : "=a" (r), "=m" (*ts) : "0" (r), "D" (clockid), "S" (ts) __ACC_ASM_CLOBBER_LIST_CC);
|
__asm__ __volatile__("syscall\n" : "=a" (r), "=m" (*ts) : "0" (r), "D" (clockid), "S" (ts) __ACC_ASM_CLOBBER_LIST_CC);
|
||||||
return ACC_ICAST(long, r);
|
return ACC_ICAST(long, r);
|
||||||
}
|
}
|
||||||
@@ -7213,7 +7232,7 @@ __acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct
|
|||||||
#endif
|
#endif
|
||||||
__acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
|
__acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
|
||||||
{
|
{
|
||||||
unsigned long r = 265;
|
unsigned long r = 265 + ((sizeof(*ts) > 8) * (403 - 265));
|
||||||
__asm__ __volatile__("pushl %%ebx\n pushl %%edx\n popl %%ebx\n int $0x80\n popl %%ebx\n": "=a" (r), "=m" (*ts) : "0" (r), "d" (clockid), "c" (ts) __ACC_ASM_CLOBBER_LIST_CC);
|
__asm__ __volatile__("pushl %%ebx\n pushl %%edx\n popl %%ebx\n int $0x80\n popl %%ebx\n": "=a" (r), "=m" (*ts) : "0" (r), "d" (clockid), "c" (ts) __ACC_ASM_CLOBBER_LIST_CC);
|
||||||
return ACC_ICAST(long, r);
|
return ACC_ICAST(long, r);
|
||||||
}
|
}
|
||||||
@@ -7239,7 +7258,7 @@ static int acc_pclock_read_clock_gettime_r_syscall(acc_pclock_handle_p h, acc_pc
|
|||||||
static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h, acc_pclock_p c)
|
static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h, acc_pclock_p c)
|
||||||
{
|
{
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
if (gettimeofday(&tv, nullptr) != 0)
|
if (gettimeofday(&tv, ACC_nullptr) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
#if defined(acc_int64l_t)
|
#if defined(acc_int64l_t)
|
||||||
c->tv_sec = tv.tv_sec;
|
c->tv_sec = tv.tv_sec;
|
||||||
@@ -7432,8 +7451,8 @@ ACCLIB_PUBLIC(int, acc_pclock_open) (acc_pclock_handle_p h, int mode)
|
|||||||
h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
|
h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
|
||||||
h->mode = -1;
|
h->mode = -1;
|
||||||
h->read_error = 2;
|
h->read_error = 2;
|
||||||
h->name = nullptr;
|
h->name = ACC_nullptr;
|
||||||
h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, 0);
|
h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, ACC_nullptr);
|
||||||
#if defined(acc_int64l_t)
|
#if defined(acc_int64l_t)
|
||||||
h->ticks_base = 0;
|
h->ticks_base = 0;
|
||||||
#endif
|
#endif
|
||||||
@@ -7560,8 +7579,8 @@ ACCLIB_PUBLIC(int, acc_pclock_close) (acc_pclock_handle_p h)
|
|||||||
{
|
{
|
||||||
h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
|
h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
|
||||||
h->mode = -1;
|
h->mode = -1;
|
||||||
h->name = nullptr;
|
h->name = ACC_nullptr;
|
||||||
h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, 0);
|
h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, ACC_nullptr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
ACCLIB_PUBLIC(void, acc_pclock_read) (acc_pclock_handle_p h, acc_pclock_p c)
|
ACCLIB_PUBLIC(void, acc_pclock_read) (acc_pclock_handle_p h, acc_pclock_p c)
|
||||||
|
|||||||
Reference in New Issue
Block a user