fixed a very serious codegen bug where stack usage was not corrected when breaking or continuing in while loops. glad I caught this last minute!

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40646
This commit is contained in:
David Anderson 2007-03-16 22:50:27 +00:00
parent c6183b14b0
commit c6166f4b44

View File

@ -6417,8 +6417,8 @@ static void addwhile(int *ptr)
{ {
int k; int k;
ptr[wqBRK]=(int)declared; /* stack pointer (for "break") */ ptr[wqBRK]=stackusage->list_id; /* stack pointer (for "break") */
ptr[wqCONT]=(int)declared; /* for "continue", possibly adjusted later */ ptr[wqCONT]=stackusage->list_id; /* for "continue", possibly adjusted later */
ptr[wqLOOP]=getlabel(); ptr[wqLOOP]=getlabel();
ptr[wqEXIT]=getlabel(); ptr[wqEXIT]=getlabel();
if (wqptr>=(wq+wqTABSZ-wqSIZE)) if (wqptr>=(wq+wqTABSZ-wqSIZE))