Fixed inaccurate compiler error when ternary operator is involved (bug 5711, r=dvander).

This commit is contained in:
Asher Baker 2013-07-18 17:59:24 -04:00
parent 29bc273e58
commit 351142f93f

View File

@ -1331,13 +1331,15 @@ static int hier13(value *lval)
ldconst(lval2.constval,sPRI); ldconst(lval2.constval,sPRI);
array1= (lval->ident==iARRAY || lval->ident==iREFARRAY); array1= (lval->ident==iARRAY || lval->ident==iREFARRAY);
array2= (lval2.ident==iARRAY || lval2.ident==iREFARRAY); array2= (lval2.ident==iARRAY || lval2.ident==iREFARRAY);
if (array1 && !array2) { if (!array1 && array2) {
const char *ptr = "-unknown-"; const char *ptr = "-unknown-";
if (lval->sym != NULL && lval->sym->name != NULL) if (lval->sym != NULL && lval->sym->name != NULL)
ptr = lval->sym->name; ptr = lval->sym->name;
error(33,ptr); /* array must be indexed */ error(33,ptr); /* array must be indexed */
} else if (!array1 && array2) { } else if (array1 && !array2) {
char *ptr=(lval2.sym->name!=NULL) ? lval2.sym->name : "-unknown-"; const char *ptr = "-unknown-";
if (lval2.sym != NULL && lval2.sym->name != NULL)
ptr = lval2.sym->name;
error(33,ptr); /* array must be indexed */ error(33,ptr); /* array must be indexed */
} /* if */ } /* if */
/* ??? if both are arrays, should check dimensions */ /* ??? if both are arrays, should check dimensions */