From 50e120e73e471aad313e11ea57733316e616aa88 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 16 Oct 2015 19:11:31 +0200 Subject: do not assume that size(void*) == size(long) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- include/inttypes.h | 15 +++++++++++++-- include/stdint.h | 12 ++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/inttypes.h b/include/inttypes.h index d9e40e9..4dffb86 100644 --- a/include/inttypes.h +++ b/include/inttypes.h @@ -88,8 +88,19 @@ intmax_t imaxabs(intmax_t) #define __PRIMAX "j" #define __SCNMAX "j" -#define __PRIPTR "l" -#define __SCNPTR "l" +#if __PTR_BIT == 8 +# define __PRIPTR __PRI8 +# define __SCNPTR __SCN8 +#elif __PTR_BIT == 16 +# define __PRIPTR __PRI16 +# define __SCNPTR __SCN16 +#elif __PTR_BIT == 32 +# define __PRIPTR __PRI32 +# define __SCNPTR __SCN32 +#elif __PTR_BIT == 64 +# define __PRIPTR __PRI64 +# define __SCNPTR __SCN64 +#endif diff --git a/include/stdint.h b/include/stdint.h index 50af12a..038521f 100644 --- a/include/stdint.h +++ b/include/stdint.h @@ -342,7 +342,11 @@ /** * Maximum value of `uintptr_t`. */ -# if __LONG_BIT == 32 +# if __PTR_BIT == 8 +# define UINTPTR_MAX UINT8_MAX +# elif __PTR_BIT == 16 +# define UINTPTR_MAX UINT16_MAX +# elif __PTR_BIT == 32 # define UINTPTR_MAX UINT32_MAX # else # define UINTPTR_MAX UINT64_MAX @@ -351,7 +355,11 @@ /** * Maximum value of `intptr_t`. */ -# if __LONG_BIT == 32 +# if __PTR_BIT == 8 +# define INTPTR_MAX INT8_MAX +# elif __PTR_BIT == 16 +# define INTPTR_MAX INT16_MAX +# elif __PTR_BIT == 32 # define INTPTR_MAX INT32_MAX # else # define INTPTR_MAX INT64_MAX -- cgit v1.2.3-70-g09d2