浏览代码

[analyzer] fix PHI AST

Simon Krajewski 10 年之前
父节点
当前提交
e6893f1a48
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      analyzer.ml

+ 2 - 2
analyzer.ml

@@ -1064,7 +1064,7 @@ module ConstPropagation = struct
 				e
 			else
 				value ssa force e'
-		| TCall (({eexpr = TLocal {v_name = "__ssa_phi__"}}),el) ->
+		| TCall (({eexpr = TLocal {v_name = "__ssa_phi__"}} as ephi),el) ->
 			let el = List.map (value ssa force) el in
 			begin match el with
 				| [] -> assert false
@@ -1072,7 +1072,7 @@ module ConstPropagation = struct
 					if List.for_all (fun e2 -> expr_eq e1 e2) el then
 						value ssa force e1
 					else
-						{e with eexpr = TCall(e1,el)}
+						{e with eexpr = TCall(ephi, e1 :: el)}
 			end
 		| TParenthesis e1 | TMeta(_,e1) ->
 			value ssa force e1