Fix the [U]INT*_C() creation macros

The [U]INT*_C() macros were broken, because ## takes precedence over
macro resolution.
This commit is contained in:
H. Peter Anvin 2007-06-02 02:26:21 +00:00
parent f209f7b1e8
commit ca9f626ba8
3 changed files with 32 additions and 42 deletions

View file

@ -28,23 +28,23 @@ typedef unsigned long long uint64_t;
#define _pri32 "l"
#define _pri64 "ll"
#define _c8 ""
#define _c16 ""
#define _c32 "L"
#define _c64 "LL"
#define _cst8
#define _cst16
#define _cst32 L
#define _cst64 LL
#define INT8_C(x) x
#define INT16_C(x) x
#define INT32_C(x) x ## L
#define INT64_C(x) x ## LL
#define UINT8_C(x) x ## U
#define UINT16_C(x) x ## U
#define UINT32_C(x) x ## UL
#define UINT64_C(x) x ## ULL
/* The rest of this is common to all models */
#define INT8_C(x) x ## _c8
#define INT16_C(x) x ## _c16
#define INT32_C(x) x ## _c32
#define INT64_C(x) x ## _c64
#define UINT8_C(x) x ## U ## _c8
#define UINT16_C(x) x ## U ## _c16
#define UINT32_C(x) x ## U ## _c32
#define UINT64_C(x) x ## U ## _c64
#define PRId8 _pri8 "d"
#define PRId16 _pri16 "d"
#define PRId32 _pri32 "d"

View file

@ -28,23 +28,18 @@ typedef unsigned long long uint64_t;
#define _pri32 ""
#define _pri64 "ll"
#define _c8 ""
#define _c16 ""
#define _c32 ""
#define _c64 "LL"
#define INT8_C(x) x
#define INT16_C(x) x
#define INT32_C(x) x
#define INT64_C(x) x ## LL
#define UINT8_C(x) x ## U
#define UINT16_C(x) x ## U
#define UINT32_C(x) x ## U
#define UINT64_C(x) x ## ULL
/* The rest of this is common to all models */
#define INT8_C(x) x ## _c8
#define INT16_C(x) x ## _c16
#define INT32_C(x) x ## _c32
#define INT64_C(x) x ## _c64
#define UINT8_C(x) x ## U ## _c8
#define UINT16_C(x) x ## U ## _c16
#define UINT32_C(x) x ## U ## _c32
#define UINT64_C(x) x ## U ## _c64
#define PRId8 _pri8 "d"
#define PRId16 _pri16 "d"
#define PRId32 _pri32 "d"

View file

@ -28,23 +28,18 @@ typedef unsigned long uint64_t;
#define _pri32 ""
#define _pri64 "l"
#define _c8 ""
#define _c16 ""
#define _c32 ""
#define _c64 "L"
#define INT8_C(x) x
#define INT16_C(x) x
#define INT32_C(x) x
#define INT64_C(x) x ## L
#define UINT8_C(x) x ## U
#define UINT16_C(x) x ## U
#define UINT32_C(x) x ## U
#define UINT64_C(x) x ## UL
/* The rest of this is common to all models */
#define INT8_C(x) x ## _c8
#define INT16_C(x) x ## _c16
#define INT32_C(x) x ## _c32
#define INT64_C(x) x ## _c64
#define UINT8_C(x) x ## U ## _c8
#define UINT16_C(x) x ## U ## _c16
#define UINT32_C(x) x ## U ## _c32
#define UINT64_C(x) x ## U ## _c64
#define PRId8 _pri8 "d"
#define PRId16 _pri16 "d"
#define PRId32 _pri32 "d"