src/SemanticAnalysis.cpp
changeset 190 dd04fce774cd
parent 188 bab29bcec7fe
child 191 9d17f29fe16a
     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