Mercurial > hg > Members > kono > os9 > sbc09
diff a09.c @ 38:52f7ad4c2ebb
a09 out range bug
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 17 Jul 2018 06:41:02 +0900 |
parents | 01519215ec70 |
children | 1d3057b6b786 |
line wrap: on
line diff
--- a/a09.c Mon Jul 16 11:22:28 2018 +0900 +++ b/a09.c Tue Jul 17 06:41:02 2018 +0900 @@ -938,7 +938,7 @@ if(lp) { if(lp->cat!=13&&lp->cat!=6) { if(lp->cat!=2||lp->value!=loccounter) - ; // error|=8; + lp->value=loccounter; // error|=8; } else { lp->cat=2; lp->value=loccounter; @@ -1244,7 +1244,8 @@ if(exprcat==2)lp->cat=2; else lp->cat=0; lp->value=operand; - } // else error|=8; + } else // else error|=8; + lp->value=operand; } break; case 7:/* FCB */ @@ -1350,7 +1351,8 @@ if(exprcat==2)lp->cat=3; else lp->cat=1; lp->value=operand; - } // else error|=8; + } else // else error|=8; + lp->value=operand; } break; case 2: /* END */ @@ -1658,7 +1660,6 @@ exit(4); } processfile(srcname); - } while (longer()); fprintf(stderr,"%d Pass 2 errors.\n",errors); if(listing) { fprintf(listfile,"%d Pass 2 errors.\n",errors); @@ -1670,6 +1671,7 @@ fprintf(objfile,"S9030000FC\n"); } fclose(objfile); + } while (longer()); return 0; }