Browse Source

[analyzer] avoid more dead block processing

Simon Krajewski 9 years ago
parent
commit
a14215f471
1 changed files with 7 additions and 1 deletions
  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 =
 		and block_el bb el =
 			match !b_try_stack with
 			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 ->
 			| bbl ->
 				let rec loop bb el = match el with
 				let rec loop bb el = match el with
 					| [] -> bb
 					| [] -> bb