aboutsummaryrefslogtreecommitdiff
path: root/tccgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'tccgen.c')
-rw-r--r--tccgen.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tccgen.c b/tccgen.c
index d8676a4..c3185ca 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -3683,7 +3683,7 @@ static void struct_decl(CType *type, int u)
v = anon_sym++;
}
/* Record the original enum/struct/union token. */
- type1.t = u;
+ type1.t = u == VT_ENUM ? u | VT_INT | VT_UNSIGNED : u;
type1.ref = NULL;
/* we put an undefined size for struct/union */
s = sym_push(v | SYM_STRUCT, &type1, 0, -1);
@@ -3736,7 +3736,7 @@ do_decl:
skip('}');
/* set integral type of the enum */
t.t = VT_INT;
- if (nl == 0) {
+ if (nl >= 0) {
if (pl != (unsigned)pl)
t.t = VT_LLONG;
t.t |= VT_UNSIGNED;