* fix life information of block nodes

git-svn-id: trunk@25973 -
This commit is contained in:
florian 2013-11-06 21:10:52 +00:00
parent 1e4737c46d
commit 63757c84ad

View File

@ -342,9 +342,12 @@ unit optdfa;
CreateInfo(tfornode(node).t2);
{ expect a blocknode as body because we need to push the life information
of the counter variable into it }
of the counter variable into it
if tfornode(node).t2.nodetype<>blockn then
internalerror(2013110201);
begin
printnode(tfornode(node).t2);
internalerror(2013110301);
end;}
{ first update the body }
l:=copy(tfornode(node).t2.optinfo^.life);
@ -404,8 +407,11 @@ unit optdfa;
blockn:
begin
CreateInfo(tblocknode(node).statements);
if assigned(tblocknode(node).statements) then
node.optinfo^.life:=tblocknode(node).statements.optinfo^.life;
{ ensure that we don't remove life info }
l:=node.optinfo^.life;
if assigned(node.successor) then
DFASetIncludeSet(l,node.successor.optinfo^.life);
UpdateLifeInfo(node,l);
end;
ifn: