diff options
Diffstat (limited to 'src/include/c.h')
-rw-r--r-- | src/include/c.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/include/c.h b/src/include/c.h index aad18a7c651..cb369692e6a 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -283,6 +283,23 @@ typedef unsigned long long int uint64; #error must have a working 64-bit integer datatype #endif +/* + * stdint.h limits aren't guaranteed to be present and aren't guaranteed to + * have compatible types with our fixed width types. So just define our own. + */ +#define PG_INT8_MIN (-0x7F-1) +#define PG_INT8_MAX (0x7F) +#define PG_UINT8_MAX (0xFF) +#define PG_INT16_MIN (-0x7FFF-1) +#define PG_INT16_MAX (0x7FFF) +#define PG_UINT16_MAX (0xFFFF) +#define PG_INT32_MIN (-0x7FFFFFFF-1) +#define PG_INT32_MAX (0x7FFFFFFF) +#define PG_UINT32_MAX (0xFFFFFFFFU) +#define PG_INT64_MIN (-INT64CONST(0x7FFFFFFFFFFFFFFF) - 1) +#define PG_INT64_MAX INT64CONST(0x7FFFFFFFFFFFFFFF) +#define PG_UINT64_MAX UINT64CONST(0xFFFFFFFFFFFFFFFF) + /* Max value of size_t might be missing if we don't have stdint.h */ #ifndef SIZE_MAX #if SIZEOF_SIZE_T == 8 |