aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Gatto <uso.cosmo.ray@gmail.com>2017-07-24 11:52:15 +0200
committerMatthias Gatto <uso.cosmo.ray@gmail.com>2017-07-24 11:52:15 +0200
commitb72cddaa6e3a69dc4480ea128566215cd537a6e2 (patch)
treeebb55f9ff23ad31a0a336cec2978b6a7d8f8d38a
parent4b3c6e74aba07d61e91b2e0ba7190483a0f9f000 (diff)
downloadtinycc-b72cddaa6e3a69dc4480ea128566215cd537a6e2.tar.gz
tinycc-b72cddaa6e3a69dc4480ea128566215cd537a6e2.tar.bz2
remove inside_generic hack
define uint64_t and int64_t as 'long' instead of 'long long' when __LP64__ is define.
-rw-r--r--include/stddef.h8
-rw-r--r--tccgen.c7
2 files changed, 8 insertions, 7 deletions
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(",");