* handle for-loops correctly if the limits contain the counter variable

git-svn-id: trunk@19918 -
This commit is contained in:
florian 2011-12-30 10:54:08 +00:00
parent 2087ab1508
commit 5defdf86ba

View File

@ -344,10 +344,14 @@ unit optdfa;
{ update for node }
{ life:=life+use+body }
l:=copy(node.optinfo^.life);
DFASetIncludeSet(l,node.optinfo^.use);
DFASetIncludeSet(l,tfornode(node).t2.optinfo^.life);
{ the for loop always updates its control variable }
DFASetDiff(l,l,node.optinfo^.def);
{ ... but it could be that left/right use it, so do it after
removing def }
DFASetIncludeSet(l,node.optinfo^.use);
UpdateLifeInfo(node,l);
{ ... and a second iteration for fast convergence }