浏览代码

[analyzer] avoid more dead block processing

Simon Krajewski 9 年之前
父节点
当前提交
a14215f471
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      src/optimization/analyzer.ml

+ 7 - 1
src/optimization/analyzer.ml

@@ -1605,7 +1605,13 @@ module TexprTransformer = struct
 		and block_el bb el =
 			match !b_try_stack with
 			| [] ->
-				List.fold_left block_element bb el;
+				let rec loop bb el = match el with
+					| [] -> bb
+					| e :: el ->
+						let bb = block_element bb e in
+						if bb == g.g_unreachable then bb else loop bb el
+				in
+				loop bb el
 			| bbl ->
 				let rec loop bb el = match el with
 					| [] -> bb