1.1 --- a/src/SemanticAnalysis.cpp Sun Sep 16 21:59:18 2012 -0700
1.2 +++ b/src/SemanticAnalysis.cpp Sun Sep 16 21:59:26 2012 -0700
1.3 @@ -710,10 +710,13 @@
1.4 bool
1.5 SemanticAnalysis::evaluateDimensions(ExpressionList *exprs, int dims[MAX_ARRAY_DEPTH])
1.6 {
1.7 + bool hadEmptySize = false;
1.8 +
1.9 for (size_t i = 0; i < exprs->length(); i++) {
1.10 Expression *expr = exprs->at(i);
1.11 if (!expr) {
1.12 dims[i] = INFER_ARRAY_SIZE;
1.13 + hadEmptySize = true;
1.14 continue;
1.15 }
1.16
1.17 @@ -738,6 +741,11 @@
1.18 return false;
1.19 }
1.20
1.21 + if (hadEmptySize) {
1.22 + cc_.reportError(expr->pos(), Message_BadDynamicInitializer);
1.23 + return false;
1.24 + }
1.25 +
1.26 dims[i] = EVAL_ARRAY_SIZE;
1.27 }
1.28