diff --git a/include/stddef.h b/include/stddef.h index 791ba31..694d503 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -13,12 +13,20 @@ typedef __SIZE_TYPE__ uintptr_t; typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; +#ifdef __LP64__ +typedef signed long int int64_t; +#else typedef signed long long int int64_t; +#endif typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; +#ifdef __LP64__ +typedef unsigned long int uint64_t; +#else typedef unsigned long long int uint64_t; #endif +#endif #ifndef NULL #define NULL ((void*)0) diff --git a/tccgen.c b/tccgen.c index 0828820..3da1143 100644 --- a/tccgen.c +++ b/tccgen.c @@ -42,7 +42,6 @@ ST_DATA Sym *local_label_stack; static int local_scope; static int in_sizeof; static int section_sym; -static int inside_generic; ST_DATA int vlas_in_scope; /* number of VLAs that are currently in scope */ ST_DATA int vla_sp_root_loc; /* vla_sp_loc for SP before any VLAs were pushed */ @@ -2737,10 +2736,6 @@ static int compare_types(CType *type1, CType *type2, int unqualified) t2 &= ~(VT_CONSTANT | VT_VOLATILE); } - if (!inside_generic) { - t1 &= ~VT_LONG; - t2 &= ~VT_LONG; - } /* Default Vs explicit signedness only matters for char */ if ((t1 & VT_BTYPE) != VT_BYTE) { t1 &= ~VT_DEFSIGN; @@ -4939,7 +4934,6 @@ ST_FUNC void unary(void) next(); skip('('); - inside_generic = 1; expr_type(&controlling_type, expr_eq); controlling_type.t &= ~(VT_CONSTANT | VT_VOLATILE | VT_ARRAY); for (;;) { @@ -4984,7 +4978,6 @@ ST_FUNC void unary(void) } begin_macro(str, 1); next(); - inside_generic = 0; expr_eq(); if (tok != TOK_EOF) expect(",");