aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--parse.c7
-rw-r--r--validation/abstract-array-declarator-star.c1
2 files changed, 6 insertions, 2 deletions
diff --git a/parse.c b/parse.c
index c7ca3dce..6db70f1a 100644
--- a/parse.c
+++ b/parse.c
@@ -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
*/