Parcourir la source

[analyzer] avoid unreachable blocks for TWhile too

Simon Krajewski il y a 9 ans
Parent
commit
c1588fbe13
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  1. 1 1
      src/optimization/analyzer.ml

+ 1 - 1
src/optimization/analyzer.ml

@@ -1372,7 +1372,7 @@ module TexprTransformer = struct
 					| [bb_break] -> bb_break
 					| _ -> bb_loop_body (* TODO: this is not accurate for while(true) loops *)
 				in
-				let bb_next = create_node BKNormal dom bb.bb_type bb.bb_pos in
+				let bb_next = if dom == g.g_unreachable then g.g_unreachable else create_node BKNormal dom bb.bb_type bb.bb_pos in
 				List.iter (fun bb -> add_cfg_edge g bb bb_next CFGGoto) bb_breaks;
 				set_syntax_edge g bb_loop_pre (SEWhile(bb_loop_body,bb_next));
 				close_node g bb_loop_pre;