use int for ssize_t, (u)intptr_t instead of long in stddef.h

master
Matthias Gatto 2017-07-25 18:56:06 +02:00
parent 23064b1734
commit 52622c3c03
2 changed files with 10 additions and 3 deletions

View File

@ -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

View File

@ -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