New ACC version.

committer: mfx <mfx> 1061224659 +0000
This commit is contained in:
Markus F.X.J. Oberhumer 2003-08-18 16:37:39 +00:00
parent d1753c6df9
commit 8eda698a9c
6 changed files with 114 additions and 69 deletions

View File

@ -31,7 +31,8 @@
* ACC_ENDIAN_BIG_ENDIAN
*
* Note that this list is not exhaustive - actually we only really care
* about IA32 which allows unaligned memory access (at reasonable speed).
* about architectures which allows unaligned memory access at reasonable
* speed (for the moment this means IA16 and IA32).
*/
#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
@ -50,11 +51,11 @@
# define ACC_ARCH_IA64 1
# define ACC_INFO_ARCH "ia64"
#elif (ACC_OS_DOS32 || ACC_OS_OS2)
# error "missing define for CPU architechture"
#elif (0 && ACC_OS_WIN32)
# error "missing define for CPU architechture"
#elif (0 && ACC_OS_WIN64)
# error "missing define for CPU architechture"
# error "missing define for CPU architecture"
#elif (ACC_OS_WIN32)
# error "missing define for CPU architecture"
#elif (ACC_OS_WIN64)
# error "missing define for CPU architecture"
#elif (ACC_OS_TOS) || defined(__m68000__)
# define ACC_ARCH_M68K 1
# define ACC_INFO_ARCH "m68k"

View File

@ -187,12 +187,12 @@
#elif (ACC_CC_TURBOC)
# undef HAVE_UNISTD_H
# undef HAVE_SYS_TIME_H
# undef HAVE_SYS_TYPES_H /* useless */
# if (ACC_OS_WIN32 || ACC_OS_WIN64)
# undef HAVE_DIRENT_H /* pulls in <windows.h>; use <dir.h> instead */
# endif
# if (__TURBOC__ < 0x0200)
# undef HAVE_SIGNAL_H /* not working */
# undef HAVE_SYS_TYPES_H
# endif
# if (__TURBOC__ < 0x0400)
# undef HAVE_DIRECT_H
@ -319,7 +319,7 @@
# undef HAVE_UTIME /* struct utimbuf is missing */
# undef HAVE_VSNPRINTF
#elif (ACC_CC_BORLANDC)
# if (ACC_OS_DOS16 || ACC_OS_WIN16)
# if defined(ACC_MM_TINY)
# undef HAVE_DIFFTIME /* difftime() is in the math library */
# endif
# if (__BORLANDC__ < 0x0400)
@ -339,7 +339,7 @@
#elif defined(__DJGPP__)
# undef HAVE_SNPRINTF
# undef HAVE_VSNPRINTF
#elif (ACC_CC_IBMC && ACC_OS_OS2)
#elif (ACC_CC_IBMC)
# undef HAVE_SNPRINTF
# undef HAVE_VSNPRINTF
#elif (ACC_CC_INTELC)
@ -493,7 +493,7 @@
# define SIZEOF___INT64 8
# define SIZEOF_UNSIGNED___INT64 8
#elif (ACC_ARCH_IA32 && (ACC_CC_BORLANDC && __BORLANDC__ >= 0x0520))
/* WARNING: unsigned __int64 is somewhat broken in 0x0520 */
/* INFO: unsigned __int64 is somewhat broken in 0x0520; fixed in 0x0530 */
# define SIZEOF___INT64 8
# define SIZEOF_UNSIGNED___INT64 8
#elif (ACC_ARCH_IA32 && (ACC_CC_WATCOMC && __WATCOMC__ >= 1100))

View File

@ -23,7 +23,7 @@
/* compile-time sign */
#if !defined(ACCCHK_ASSERT_SIGN_T)
# define ACCCHK_ASSERT_SIGN_T(type, relop) \
# define ACCCHK_ASSERT_SIGN_T(type,relop) \
ACCCHK_ASSERT( (type) (-1) relop (type) 0 ) \
ACCCHK_ASSERT( (type) (~(type)0) relop (type) 0 ) \
ACCCHK_ASSERT( (type) (~(type)0) == (type) (-1) )

View File

@ -19,9 +19,22 @@
/*************************************************************************
//
// exceptions
// ACC_CXX_NOTHROW
**************************************************************************/
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x028000ul))
# define ACC_CXX_NOTHROW
#elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
# define ACC_CXX_NOTHROW
#elif (ACC_CC_TURBOC)
# define ACC_CXX_NOTHROW
#elif (ACC_CC_MSC && (_MSC_VER < 1100))
# define ACC_CXX_NOTHROW
#elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
# define ACC_CXX_NOTHROW
#endif
#if !defined(ACC_CXX_NOTHROW)
# define ACC_CXX_NOTHROW throw()
#endif
@ -29,58 +42,89 @@
/*************************************************************************
// disable dynamic allocation of an object
// ACC_CXX_DISABLE_NEW_DELETE
// ACC_CXX_DISABLE_NEW_DELETE_STRICT
**************************************************************************/
#if defined(new) || defined(delete)
#elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
#undef __ACC_CXX_HAVE_ARRAY_NEW
#undef __ACC_CXX_HAVE_PLACEMENT_NEW
#undef __ACC_CXX_HAVE_PLACEMENT_DELETE
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x029000ul))
# define ACC_CXX_DISABLE_NEW_DELETE private:
#elif (ACC_CC_MSC && ACC_MM_HUGE)
# define ACC_CXX_DISABLE_NEW_DELETE private:
#elif (ACC_CC_MSC && (_MSC_VER < 1100))
#elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
#elif (ACC_CC_TURBOC)
#elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
#else
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW \
static void* operator new(size_t, void*);
# define __ACC_CXX_HAVE_ARRAY_NEW 1
#endif
#if (__ACC_CXX_HAVE_ARRAY_NEW)
# define __ACC_CXX_HAVE_PLACEMENT_NEW 1
#endif
#if (__ACC_CXX_HAVE_PLACEMENT_NEW)
# if (ACC_CC_GNUC >= 0x030000ul)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
# elif (ACC_CC_INTELC)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
# elif (ACC_CC_MSC && (_MSC_VER >= 1200))
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
# endif
# if !defined(__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW
# undef __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE
# endif
# if !defined(__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE)
# define __ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE
# endif
# define ACC_CXX_DISABLE_NEW_DELETE \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t); \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
private:
# define ACC_CXX_DISABLE_NEW_DELETE_STRICT \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t); \
__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_NEW \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
__ACC_CXX_DISABLE_NEW_DELETE_PLACEMENT_DELETE \
private:
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE)
#if !defined(__ACC_CXX_PLACEMENT_NEW) && (__ACC_CXX_HAVE_PLACEMENT_NEW)
# define __ACC_CXX_PLACEMENT_NEW \
static void* operator new(size_t, void*);
#endif
#if !defined(__ACC_CXX_PLACEMENT_DELETE) && (__ACC_CXX_HAVE_PLACEMENT_DELETE)
# define __ACC_CXX_PLACEMENT_DELETE \
static void operator delete(void*, void*) ACC_CXX_NOTHROW { }
#endif
#if !defined(__ACC_CXX_PLACEMENT_NEW)
# define __ACC_CXX_PLACEMENT_NEW
#endif
#if !defined(__ACC_CXX_PLACEMENT_DELETE)
# define __ACC_CXX_PLACEMENT_DELETE
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE) && (defined(new) || defined(delete))
# define ACC_CXX_DISABLE_NEW_DELETE private:
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE) && !(__ACC_CXX_HAVE_ARRAY_NEW)
/* for old compilers use `protected' instead of `private' */
# define ACC_CXX_DISABLE_NEW_DELETE \
protected: static void operator delete(void*) ACC_CXX_NOTHROW { } \
protected: static void* operator new(size_t); \
private:
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE)
# define ACC_CXX_DISABLE_NEW_DELETE \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t);
# define ACC_CXX_DISABLE_NEW_DELETE_STRICT \
protected: \
static void operator delete(void*) ACC_CXX_NOTHROW { } \
static void operator delete[](void*) ACC_CXX_NOTHROW { } \
__ACC_CXX_PLACEMENT_DELETE \
private: \
static void* operator new(size_t); \
static void* operator new[](size_t); \
__ACC_CXX_PLACEMENT_NEW
#endif
#if !defined(ACC_CXX_DISABLE_NEW_DELETE_STRICT)
# define ACC_CXX_DISABLE_NEW_DELETE_STRICT ACC_CXX_DISABLE_NEW_DELETE
#endif

View File

@ -245,7 +245,7 @@ typedef struct {
} acc_rand48_t;
ACCLIB_EXTERN(void, acc_srand48) (acc_rand48_t* r, acc_uint32l_t seed);
ACCLIB_EXTERN(acc_uint32l_t, acc_rand48) (acc_rand48_t* r);
#endif /* defined(acc_uint64l_t) */
#endif
#if defined(acc_uint64l_t)
typedef struct {
@ -253,7 +253,7 @@ typedef struct {
} acc_rand64_t;
ACCLIB_EXTERN(void, acc_srand64) (acc_rand64_t* r, acc_uint64l_t seed);
ACCLIB_EXTERN(acc_uint32l_t, acc_rand64) (acc_rand64_t* r);
#endif /* defined(acc_uint64l_t) */
#endif
#endif /* already included */

View File

@ -22,28 +22,28 @@
// FIXME
**************************************************************************/
ACCLIB_EXTERN(unsigned, acc_get_be16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_be32) (const acc_hvoid_p);
ACCLIB_PUBLIC(unsigned, acc_get_be16) (const acc_hvoid_p);
ACCLIB_PUBLIC(acc_uint32l_t, acc_get_be24) (const acc_hvoid_p);
ACCLIB_PUBLIC(acc_uint32l_t, acc_get_be32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be16) (acc_hvoid_p, unsigned v);
ACCLIB_EXTERN(void, acc_set_be24) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_EXTERN(void, acc_set_be32) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_PUBLIC(void, acc_set_be16) (acc_hvoid_p, unsigned v);
ACCLIB_PUBLIC(void, acc_set_be24) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_PUBLIC(void, acc_set_be32) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_EXTERN(unsigned, acc_get_le16) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le24) (const acc_hvoid_p);
ACCLIB_EXTERN(acc_uint32l_t, acc_get_le32) (const acc_hvoid_p);
ACCLIB_PUBLIC(unsigned, acc_get_le16) (const acc_hvoid_p);
ACCLIB_PUBLIC(acc_uint32l_t, acc_get_le24) (const acc_hvoid_p);
ACCLIB_PUBLIC(acc_uint32l_t, acc_get_le32) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le16) (acc_hvoid_p, unsigned v);
ACCLIB_EXTERN(void, acc_set_le24) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_EXTERN(void, acc_set_le32) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_PUBLIC(void, acc_set_le16) (acc_hvoid_p, unsigned v);
ACCLIB_PUBLIC(void, acc_set_le24) (acc_hvoid_p, acc_uint32l_t v);
ACCLIB_PUBLIC(void, acc_set_le32) (acc_hvoid_p, acc_uint32l_t v);
#if defined(acc_uint64l_t)
ACCLIB_EXTERN(acc_uint64l_t, acc_get_be64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_be64) (acc_hvoid_p, acc_uint64l_t v);
ACCLIB_PUBLIC(acc_uint64l_t, acc_get_be64) (const acc_hvoid_p);
ACCLIB_PUBLIC(void, acc_set_be64) (acc_hvoid_p, acc_uint64l_t v);
ACCLIB_EXTERN(acc_uint64l_t, acc_get_le64) (const acc_hvoid_p);
ACCLIB_EXTERN(void, acc_set_le64) (acc_hvoid_p, acc_uint64l_t v);
ACCLIB_PUBLIC(acc_uint64l_t, acc_get_le64) (const acc_hvoid_p);
ACCLIB_PUBLIC(void, acc_set_le64) (acc_hvoid_p, acc_uint64l_t v);
#endif