浏览代码

* fixed dfa for raise nodes

git-svn-id: trunk@8155 -
florian 18 年之前
父节点
当前提交
a2ac6c698d
共有 1 个文件被更改,包括 6 次插入5 次删除
  1. 6 5
      compiler/optdfa.pas

+ 6 - 5
compiler/optdfa.pas

@@ -411,10 +411,7 @@ unit optdfa;
 
             raisen:
               begin
-                calclife(node);
-                node.allocoptinfo;
-                if not(assigned(node.optinfo^.def)) and
-                   not(assigned(node.optinfo^.use)) then
+                if not(assigned(node.optinfo^.life)) then
                   begin
                     dfainfo.use:[email protected]^.use;
                     dfainfo.def:[email protected]^.def;
@@ -422,8 +419,12 @@ unit optdfa;
                     foreachnodestatic(pm_postprocess,traisenode(node).left,@AddDefUse,@dfainfo);
                     foreachnodestatic(pm_postprocess,traisenode(node).right,@AddDefUse,@dfainfo);
                     foreachnodestatic(pm_postprocess,traisenode(node).third,@AddDefUse,@dfainfo);
+                    { update node }
+                    l:=node.optinfo^.life;
+                    DFASetIncludeSet(l,node.optinfo^.use);
+                    UpdateLifeInfo(node,l);
+                    printdfainfo(output,node);
                   end;
-                calclife(node);
               end;
 
             calln: