1.1 --- a/compiler-init/sc3.c Fri Jul 14 06:21:07 2006 +0000
1.2 +++ b/compiler-init/sc3.c Fri Jul 14 06:47:51 2006 +0000
1.3 @@ -1670,13 +1670,29 @@
1.4 if (sc_allowproccall) {
1.5 callfunction(sym,lval1,FALSE);
1.6 } else {
1.7 - lval1->sym=NULL;
1.8 - lval1->ident=iEXPRESSION;
1.9 - lval1->constval=0;
1.10 - lval1->tag=0;
1.11 - error(76); /* invalid function call, or syntax error */
1.12 - } /* if */
1.13 - return FALSE;
1.14 + int n=-1,iter=0;
1.15 + for (sym=glbtab.next; sym!=NULL; sym=sym->next) {
1.16 + if (sym->ident==iFUNCTN
1.17 + && (sym->usage & uPUBLIC)!=0 && (sym->usage & uDEFINE)!=0)
1.18 + {
1.19 + assert(sym->vclass==sGLOBAL);
1.20 + if (strcmp(sym->name, lval1->sym->name)==0) {
1.21 + n = iter;
1.22 + break;
1.23 + }
1.24 + iter++;
1.25 + }
1.26 + }
1.27 + if (n!=-1) {
1.28 + lval1->sym=NULL;
1.29 + lval1->ident=iCONSTEXPR;
1.30 + lval1->constval=n;
1.31 + lval1->tag=pc_addtag("Function");
1.32 + } else {
1.33 + error(76); /* invalid function call, or syntax error */
1.34 + } /* if */
1.35 + return FALSE;
1.36 + }
1.37 } /* if */
1.38 return lvalue;
1.39 }