aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-05-19 01:06:03 -0700
committerMichael Forney <mforney@mforney.org>2019-05-19 01:06:03 -0700
commitbb3a22a3eb6b0b2be52620577c1ef5465d3bcd76 (patch)
tree50ea116d660fde5fadeb0dea6e71e73231802b0a
parentf41c37d7be16f7845795bae95e1356ca1f7a2fd6 (diff)
decl: Allow zero length arrays
gcc allows this, and glibc uses it in some headers instead of flexible array members.
-rw-r--r--decl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/decl.c b/decl.c
index 81130f3..60cb89c 100644
--- a/decl.c
+++ b/decl.c
@@ -552,8 +552,8 @@ declaratortypes(struct scope *s, struct list *result, char **name, bool allowabs
if (e->kind != EXPRCONST || !(e->type->prop & PROPINT))
error(&tok.loc, "VLAs are not yet supported");
i = e->constant.i;
- if (i == 0 || e->type->basic.issigned && i > INT64_MAX)
- error(&tok.loc, "array length must be positive");
+ if (e->type->basic.issigned && i > INT64_MAX)
+ error(&tok.loc, "array length must be non-negative");
delexpr(e);
expect(TRBRACK, "after array length");
}