Unified · Split
| @@ -1,20 +1,28 @@ | ||
| 1 | 1 | #ifndef _STDDEF_H |
| 2 | 2 | #define _STDDEF_H |
| 3 | 3 | |
| 4 | −#define NULL ((void *)0) | |
| 5 | 4 | typedef __SIZE_TYPE__ size_t; |
| 5 | +typedef __PTRDIFF_TYPE__ ssize_t; | |
| 6 | 6 | typedef __WCHAR_TYPE__ wchar_t; |
| 7 | 7 | typedef __PTRDIFF_TYPE__ ptrdiff_t; |
| 8 | −#define offsetof(type, field) ((size_t) &((type *)0)->field) | |
| 8 | +typedef __PTRDIFF_TYPE__ intptr_t; | |
| 9 | +typedef __SIZE_TYPE__ uintptr_t; | |
| 9 | 10 | |
| 10 | 11 | #ifndef __int8_t_defined |
| 11 | 12 | #define __int8_t_defined |
| 12 | −typedef char int8_t; | |
| 13 | −typedef short int int16_t; | |
| 14 | −typedef int int32_t; | |
| 15 | −typedef long long int int64_t; | |
| 13 | +typedef signed char int8_t; | |
| 14 | +typedef signed short int int16_t; | |
| 15 | +typedef signed int int32_t; | |
| 16 | +typedef signed long long int int64_t; | |
| 17 | +typedef unsigned char uint8_t; | |
| 18 | +typedef unsigned short int uint16_t; | |
| 19 | +typedef unsigned int uint32_t; | |
| 20 | +typedef unsigned long long int uint64_t; | |
| 16 | 21 | #endif |
| 17 | 22 | |
| 23 | +#define NULL ((void *)0) | |
| 24 | +#define offsetof(type, field) ((size_t)&((type *)0)->field) | |
| 25 | + | |
| 18 | 26 | void *alloca(size_t size); |
| 19 | 27 | |
| 20 | 28 | #endif |
| @@ -886,9 +886,9 @@ LIBTCCAPI TCCState *tcc_new(void) · 885 unmodified lines | ||
| 886 | 886 | tcc_define_symbol(s, "__STDC__", NULL); |
| 887 | 887 | tcc_define_symbol(s, "__STDC_VERSION__", "199901L"); |
| 888 | 888 | #if defined(TCC_TARGET_I386) |
| 889 | − tcc_define_symbol(s, "__i386__", "1"); | |
| 890 | − tcc_define_symbol(s, "__i386", "1"); | |
| 891 | − tcc_define_symbol(s, "i386", "1"); | |
| 889 | + tcc_define_symbol(s, "__i386__", NULL); | |
| 890 | + tcc_define_symbol(s, "__i386", NULL); | |
| 891 | + tcc_define_symbol(s, "i386", NULL); | |
| 892 | 892 | #endif |
| 893 | 893 | #if defined(TCC_TARGET_X86_64) |
| 894 | 894 | tcc_define_symbol(s, "__x86_64__", NULL); |
| @@ -909,13 +909,12 @@ LIBTCCAPI TCCState *tcc_new(void) · 14 unmodified lines | ||
| 909 | 909 | tcc_define_symbol(s, "_WIN64", NULL); |
| 910 | 910 | #endif |
| 911 | 911 | #else |
| 912 | − tcc_define_symbol(s, "__unix__", "1"); | |
| 913 | − tcc_define_symbol(s, "__unix", "1"); | |
| 914 | − tcc_define_symbol(s, "unix", "1"); | |
| 912 | + tcc_define_symbol(s, "__unix__", NULL); | |
| 913 | + tcc_define_symbol(s, "__unix", NULL); | |
| 914 | + tcc_define_symbol(s, "unix", NULL); | |
| 915 | 915 | #if defined(__FreeBSD__) |
| 916 | 916 | #define str(s) #s |
| 917 | 917 | tcc_define_symbol(s, "__FreeBSD__", str( __FreeBSD__)); |
| 918 | − tcc_define_symbol(s, "__INTEL_COMPILER", "1"); | |
| 919 | 918 | #undef str |
| 920 | 919 | #endif |
| 921 | 920 | #if defined(__linux) |
| @@ -929,8 +928,14 @@ LIBTCCAPI TCCState *tcc_new(void) · 7 unmodified lines | ||
| 929 | 928 | tcc_define_symbol(s, "__TINYC__", buffer); |
| 930 | 929 | |
| 931 | 930 | /* tiny C & gcc defines */ |
| 931 | +#if defined TCC_TARGET_PE && defined TCC_TARGET_X86_64 | |
| 932 | + tcc_define_symbol(s, "__SIZE_TYPE__", "unsigned long long"); | |
| 933 | + tcc_define_symbol(s, "__PTRDIFF_TYPE__", "long long"); | |
| 934 | +#else | |
| 932 | 935 | tcc_define_symbol(s, "__SIZE_TYPE__", "unsigned long"); |
| 933 | 936 | tcc_define_symbol(s, "__PTRDIFF_TYPE__", "long"); |
| 937 | +#endif | |
| 938 | + | |
| 934 | 939 | #ifdef TCC_TARGET_PE |
| 935 | 940 | tcc_define_symbol(s, "__WCHAR_TYPE__", "unsigned short"); |
| 936 | 941 | #else |
| @@ -58,28 +58,27 @@ · 57 unmodified lines | ||
| 58 | 58 | #define _CRT_WIDE(_String) __CRT_WIDE(_String) |
| 59 | 59 | |
| 60 | 60 | #ifdef _WIN64 |
| 61 | −# define _INTEGRAL_MAX_BITS 64 | |
| 62 | −typedef __int64 intptr_t; | |
| 63 | −typedef __int64 ptrdiff_t; | |
| 64 | −typedef unsigned __int64 uintptr_t; | |
| 65 | −# define __stdcall | |
| 66 | −# define _AMD64_ 1 | |
| 67 | −# define __x86_64 1 | |
| 68 | −# define USE_MINGW_SETJMP_TWO_ARGS | |
| 69 | −# define mingw_getsp tinyc_getbp | |
| 61 | +#define __stdcall | |
| 62 | +#define _AMD64_ 1 | |
| 63 | +#define __x86_64 1 | |
| 64 | +#define USE_MINGW_SETJMP_TWO_ARGS | |
| 65 | +#define mingw_getsp tinyc_getbp | |
| 70 | 66 | #else |
| 71 | −# define _INTEGRAL_MAX_BITS 32 | |
| 72 | −typedef __int32 intptr_t; | |
| 73 | −typedef __int32 ptrdiff_t; | |
| 74 | −typedef unsigned __int32 uintptr_t; | |
| 75 | −# define __stdcall __attribute__((__stdcall__)) | |
| 76 | −# define _X86_ 1 | |
| 77 | −# define WIN32 1 | |
| 78 | −# define _USE_32BIT_TIME_T | |
| 67 | +#define __stdcall __attribute__((__stdcall__)) | |
| 68 | +#define _X86_ 1 | |
| 69 | +#define WIN32 1 | |
| 70 | +#define _USE_32BIT_TIME_T | |
| 79 | 71 | #endif |
| 72 | + | |
| 73 | +/* in stddef.h */ | |
| 74 | +#define _SIZE_T_DEFINED | |
| 75 | +#define _SSIZE_T_DEFINED | |
| 76 | +#define _PTRDIFF_T_DEFINED | |
| 77 | +#define _WCHAR_T_DEFINED | |
| 80 | 78 | #define _UINTPTR_T_DEFINED |
| 81 | 79 | #define _INTPTR_T_DEFINED |
| 82 | −#define _PTRDIFF_T_DEFINED | |
| 80 | + | |
| 81 | +#define _INTEGRAL_MAX_BITS 64 | |
| 83 | 82 | |
| 84 | 83 | typedef long __time32_t; |
| 85 | 84 | #define _TIME32_T_DEFINED |