diff --git a/tccgen.c b/tccgen.c index 3da1143..292c091 100644 --- a/tccgen.c +++ b/tccgen.c @@ -3954,7 +3954,7 @@ static int parse_btype(CType *type, AttributeDef *ad) basic_type: next(); basic_type1: - if (u == VT_SHORT || u == VT_LONG) { + if (u == VT_SHORT) { if (st != -1 || (bt != -1 && bt != VT_INT)) tmbt: tcc_error("too many basic types"); st = u; @@ -3984,8 +3984,8 @@ static int parse_btype(CType *type, AttributeDef *ad) } else if (t & VT_LONG) { t = (t & ~(VT_LONG | VT_BTYPE)) | VT_LLONG; } else { - u = VT_LONG; - goto basic_type; + t |= VT_LONG; + typespec_found = 1; } next(); break;