diff options
-rw-r--r-- | parse.c | 7 | ||||
-rw-r--r-- | validation/abstract-array-declarator-star.c | 1 |
2 files changed, 6 insertions, 2 deletions
@@ -1717,7 +1717,12 @@ static struct token *abstract_array_declarator(struct token *token, struct symbo has_static |= (sym->op->type & KW_STATIC); token = token->next; } - token = assignment_expression(token, &expr); + if (match_op(token, '*') && match_op(token->next, ']')) { + // FIXME: '[*]' is treated like '[]' + token = token->next; + } else { + token = assignment_expression(token, &expr); + } sym->array_size = expr; return token; } diff --git a/validation/abstract-array-declarator-star.c b/validation/abstract-array-declarator-star.c index fdbdff19..fc42da3a 100644 --- a/validation/abstract-array-declarator-star.c +++ b/validation/abstract-array-declarator-star.c @@ -5,5 +5,4 @@ void ok9(int a[const volatile restrict *]); /* * check-name: abstract-array-declarator-star - * check-known-to-fail */ |