From 52622c3c0365ad497ce1188e433ac5f0a721c283 Mon Sep 17 00:00:00 2001 From: Matthias Gatto Date: Tue, 25 Jul 2017 18:56:06 +0200 Subject: [PATCH] use int for ssize_t, (u)intptr_t instead of long in stddef.h --- include/stddef.h | 9 ++++++++- libtcc.c | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/stddef.h b/include/stddef.h index 694d503..8ed6b3e 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -2,11 +2,18 @@ #define _STDDEF_H typedef __SIZE_TYPE__ size_t; -typedef __PTRDIFF_TYPE__ ssize_t; typedef __WCHAR_TYPE__ wchar_t; typedef __PTRDIFF_TYPE__ ptrdiff_t; + +#ifdef __ILP32__ +typedef int ssize_t; +typedef int intptr_t; +typedef unsigned int uintptr_t; +#else +typedef __PTRDIFF_TYPE__ ssize_t; typedef __PTRDIFF_TYPE__ intptr_t; typedef __SIZE_TYPE__ uintptr_t; +#endif #ifndef __int8_t_defined #define __int8_t_defined diff --git a/libtcc.c b/libtcc.c index 6a5e452..ec81992 100644 --- a/libtcc.c +++ b/libtcc.c @@ -848,8 +848,8 @@ LIBTCCAPI TCCState *tcc_new(void) tcc_define_symbol(s, "__LP64__", NULL); #else /* Other 32bit systems. */ - tcc_define_symbol(s, "__SIZE_TYPE__", "unsigned int"); - tcc_define_symbol(s, "__PTRDIFF_TYPE__", "int"); + tcc_define_symbol(s, "__SIZE_TYPE__", "unsigned long"); + tcc_define_symbol(s, "__PTRDIFF_TYPE__", "long"); tcc_define_symbol(s, "__ILP32__", NULL); #endif