1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-04 12:52:15 +00:00

Introduce internal macros for __U/INT64_C to define the U/INT64_MAX/MIN

values properly. The previous definition only worked if __STDC_LIMIT_MACROS
and __STDC_CONSTANT_MACROS were defined at the same time.
This commit is contained in:
Andreas Tobler 2012-01-04 16:02:52 +00:00
parent 19b0c9b246
commit 54c699c4cc
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=229494

View File

@ -65,6 +65,14 @@
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
#ifdef __LP64__
#define __INT64_C(c) (c ## L)
#define __UINT64_C(c) (c ## UL)
#else
#define __INT64_C(c) (c ## LL)
#define __UINT64_C(c) (c ## ULL)
#endif
/*
* ISO/IEC 9899:1999
* 7.18.2.1 Limits of exact-width integer types
@ -73,19 +81,19 @@
#define INT8_MIN (-0x7f-1)
#define INT16_MIN (-0x7fff-1)
#define INT32_MIN (-0x7fffffff-1)
#define INT64_MIN (-INT64_C(0x7fffffffffffffff)-1)
#define INT64_MIN (-__INT64_C(0x7fffffffffffffff)-1)
/* Maximum values of exact-width signed integer types. */
#define INT8_MAX 0x7f
#define INT16_MAX 0x7fff
#define INT32_MAX 0x7fffffff
#define INT64_MAX INT64_C(0x7fffffffffffffff)
#define INT64_MAX __INT64_C(0x7fffffffffffffff)
/* Maximum values of exact-width unsigned integer types. */
#define UINT8_MAX 0xff
#define UINT16_MAX 0xffff
#define UINT32_MAX 0xffffffff
#define UINT64_MAX UINT64_C(0xffffffffffffffff)
#define UINT64_MAX __UINT64_C(0xffffffffffffffff)
/*
* ISO/IEC 9899:1999