Removed a bug that led to infinite looping in obscure cases.

This commit is contained in:
ceriel 1987-01-06 18:49:00 +00:00
parent 300ac178de
commit ceff6f834a

View file

@ -71,6 +71,12 @@ getrefcount(regno) {
erasereg(regno) { erasereg(regno) {
register struct reginfo *rp; register struct reginfo *rp;
register int i;
rp = &machregs[regno];
rp->r_contents.t_token = 0;
for (i=0;i<TOKENSIZE;i++)
rp->r_contents.t_att[i].aw = 0;
#if MAXMEMBERS==0 #if MAXMEMBERS==0
awayreg(regno); awayreg(regno);
@ -86,11 +92,6 @@ awayreg(regno) {
register tkdef_p tdp; register tkdef_p tdp;
register i; register i;
rp = &machregs[regno];
rp->r_contents.t_token = 0;
for (i=0;i<TOKENSIZE;i++)
rp->r_contents.t_att[i].aw = 0;
/* Now erase recursively all registers containing /* Now erase recursively all registers containing
* something using this one * something using this one
*/ */