Fixed bug at22981

This commit is contained in:
David Anderson 2006-01-07 02:20:54 +00:00
parent bec98dcddd
commit a4db0d927a

View File

@ -676,6 +676,9 @@ SC_FUNC int expression(cell *val,int *tag,symbol **symptr,int chkfuncresult)
if (lval.ident==iCONSTEXPR && val!=NULL) /* constant expression */ if (lval.ident==iCONSTEXPR && val!=NULL) /* constant expression */
*val=lval.constval; *val=lval.constval;
if (lval.ident==iARRAY || lval.ident==iREFARRAY) {
error(13, lval.sym ? (lval.sym->name ? lval.sym->name : "-unknown-") : "-unknown-");
}
if (tag!=NULL) if (tag!=NULL)
*tag=lval.tag; *tag=lval.tag;
if (symptr!=NULL) if (symptr!=NULL)
@ -1593,6 +1596,13 @@ restart:
error(76); /* invalid function call, or syntax error */ error(76); /* invalid function call, or syntax error */
} /* if */ } /* if */
return FALSE; return FALSE;
} else if (sym!=NULL && (lval1->ident==iARRAY || lval1->ident==iREFARRAY)) {
error(33, sym->name ? sym->name : "-unknown-"); /* the array was not indexed properly */
lval1->sym = NULL;
lval1->ident=iEXPRESSION;
lval1->constval=0;
lval1->tag=0;
return FALSE;
} /* if */ } /* if */
return lvalue; return lvalue;
} }