Fixed inaccurate compiler error when ternary operator is involved (bug 5711, r=dvander).
authorAsher Baker <asherkin@gmail.com>
Thu Jul 18 17:59:24 2013 -0400 (2013-07-18)
changeset 39524c9e2b1cf78d
parent 3951 c3f26df2183f
child 3953 ea7a34452243
Fixed inaccurate compiler error when ternary operator is involved (bug 5711, r=dvander).
sourcepawn/compiler/sc3.c
     1.1 --- a/sourcepawn/compiler/sc3.c	Thu Jul 18 15:50:57 2013 -0400
     1.2 +++ b/sourcepawn/compiler/sc3.c	Thu Jul 18 17:59:24 2013 -0400
     1.3 @@ -1331,13 +1331,15 @@
     1.4        ldconst(lval2.constval,sPRI);
     1.5      array1= (lval->ident==iARRAY || lval->ident==iREFARRAY);
     1.6      array2= (lval2.ident==iARRAY || lval2.ident==iREFARRAY);
     1.7 -    if (array1 && !array2) {
     1.8 +    if (!array1 && array2) {
     1.9        const char *ptr = "-unknown-";
    1.10 -	  if (lval->sym != NULL && lval->sym->name != NULL)
    1.11 +      if (lval->sym != NULL && lval->sym->name != NULL)
    1.12          ptr = lval->sym->name;
    1.13        error(33,ptr);            /* array must be indexed */
    1.14 -    } else if (!array1 && array2) {
    1.15 -      char *ptr=(lval2.sym->name!=NULL) ? lval2.sym->name : "-unknown-";
    1.16 +    } else if (array1 && !array2) {
    1.17 +      const char *ptr = "-unknown-";
    1.18 +      if (lval2.sym != NULL && lval2.sym->name != NULL)
    1.19 +        ptr = lval2.sym->name;
    1.20        error(33,ptr);            /* array must be indexed */
    1.21      } /* if */
    1.22      /* ??? if both are arrays, should check dimensions */