diff --git a/tccgen.c b/tccgen.c index d7a5488..cbfe5ff 100644 --- a/tccgen.c +++ b/tccgen.c @@ -4013,7 +4013,7 @@ static int post_type(CType *type, AttributeDef *ad, int storage, int td) if (tok == '[') { next(); skip(']'); /* only handle simple "[]" */ - type->t |= VT_PTR; + mk_pointer(type); } /* we push a anonymous symbol which will contain the function prototype */ ad->a.func_args = arg_size; diff --git a/tests/tcctest.c b/tests/tcctest.c index e86a2a6..b6e4116 100644 --- a/tests/tcctest.c +++ b/tests/tcctest.c @@ -176,6 +176,11 @@ static int onetwothree = 123; #define B3 4 #endif +#ifdef __TINYC__ +/* We try to handle this syntax. Make at least sure it doesn't segfault. */ +char invalid_function_def()[] {} +#endif + #define __INT64_C(c) c ## LL #define INT64_MIN (-__INT64_C(9223372036854775807)-1)