- param count pushed is now cell based, not byte based

- removed .. for cases

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40106
This commit is contained in:
David Anderson
2006-10-06 17:03:33 +00:00
parent c6f60dbd6c
commit cfcb4d288b
2 changed files with 5 additions and 21 deletions
+2 -18
View File
@@ -4459,7 +4459,7 @@ static void destructsymbols(symbol *root,int level)
address(sym,sPRI);
addconst(offset); /* add offset to array data to the address */
pushreg(sPRI);
pushval(2*sizeof(cell));/* 2 parameters */
pushval(2 /* *sizeof(cell)*/ );/* 2 parameters */
assert(opsym->ident==iFUNCTN);
ffcall(opsym,NULL,1);
if (sc_status!=statSKIP)
@@ -5231,23 +5231,7 @@ static void doswitch(void)
assert(csp->next==cse);
insert_constval(csp,cse,itoh(lbl_case),val,0);
if (matchtoken(tDBLDOT)) {
cell end;
constexpr(&end,NULL,NULL);
if (end<=val)
error(50); /* invalid range */
while (++val<=end) {
casecount++;
/* find the new insertion point */
for (csp=&caselist, cse=caselist.next;
cse!=NULL && cse->value<val;
csp=cse, cse=cse->next)
/* nothing */;
if (cse!=NULL && cse->value==val)
error(40,val); /* duplicate "case" label */
assert(csp!=NULL);
assert(csp->next==cse);
insert_constval(csp,cse,itoh(lbl_case),val,0);
} /* if */
error(1, ":", "..");
} /* if */
} while (matchtoken(','));
needtoken(':'); /* ':' ends the case */