From 292d8e4a831d7fa94be382824e51f3c14b5c7447 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Sun, 23 Sep 2018 23:57:30 -0700 Subject: [PATCH] added some tests based on limits.h in order to ensure proper type mapping when not using stdint.h --- lib/common/mem.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/common/mem.h b/lib/common/mem.h index 47d230017..2051bcad1 100644 --- a/lib/common/mem.h +++ b/lib/common/mem.h @@ -57,11 +57,23 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size typedef uint64_t U64; typedef int64_t S64; #else +# include +#if CHAR_BIT != 8 +# error "this implementation requires char to be exactly 8-bit type" +#endif typedef unsigned char BYTE; +#if USHRT_MAX != 65535 +# error "this implementation requires short to be exactly 16-bit type" +#endif typedef unsigned short U16; typedef signed short S16; +#if UINT_MAX != 4294967295 +# error "this implementation requires int to be exactly 32-bit type" +#endif typedef unsigned int U32; typedef signed int S32; +/* note : there are no limits defined for long long type in C90. + * limits exist in C99, however, in such case, is preferred */ typedef unsigned long long U64; typedef signed long long S64; #endif -- 2.47.2