From 9b52e16a50e7ed86b4fec6736cd32421fa90785a Mon Sep 17 00:00:00 2001 From: Joe Soroka Date: Fri, 22 Jul 2011 02:09:28 -0700 Subject: re-added negative-array-size testcase and fixed fix for it --- tccgen.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tccgen.c') diff --git a/tccgen.c b/tccgen.c index cfa7d8f..e488c65 100644 --- a/tccgen.c +++ b/tccgen.c @@ -3166,13 +3166,13 @@ static void post_type(CType *type, AttributeDef *ad) n = -1; t1 = 0; if (tok != ']') { - gexpr(); + if (!local_stack || nocode_wanted) + vpushi(expr_const()); + else gexpr(); if ((vtop->r & (VT_VALMASK | VT_LVAL | VT_SYM)) == VT_CONST) { n = vtop->c.i; if (n < 0) error("invalid array size"); - } else if (!local_stack) { - error("expected constant expression (variably modified array at file scope)"); } else { if (!is_integer_btype(vtop->type.t & VT_BTYPE)) error("size of variable length array should be an integer"); -- cgit v1.3.1