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:
parent
c6183b14b0
commit
c6166f4b44
@ -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))
|
||||||
|
Loading…
Reference in New Issue
Block a user