File tree Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ let disconnect cfg_with_layout label =
43
43
(* CR-someday gyorsh: if trap handlers can be eliminated, remove this
44
44
label from block.exn of other blocks. *)
45
45
Misc. fatal_error " Removing trap handler blocks is not supported" ;
46
- let successors = C. successor_labels ~normal: true ~exn: true cfg block in
46
+ let successors = C. successor_labels ~normal: true ~exn: false cfg block in
47
47
let has_predecessors = not (Label.Set. is_empty block.predecessors) in
48
48
let n = Label.Set. cardinal successors in
49
49
let has_more_than_one_successor = n > 1 in
@@ -65,6 +65,12 @@ let disconnect cfg_with_layout label =
65
65
(Label.Set. remove label succ_block.predecessors)
66
66
block.predecessors)
67
67
successors;
68
+ Label.Set. iter
69
+ (fun succ ->
70
+ let succ_block = C. get_block_exn cfg succ in
71
+ assert (Label.Set. mem label succ_block.predecessors);
72
+ succ_block.predecessors < - Label.Set. remove label succ_block.predecessors)
73
+ (C. successor_labels ~normal: false ~exn: true cfg block);
68
74
(* Update predecessor blocks. *)
69
75
if n = 1 then
70
76
let target_label = Label.Set. min_elt successors in
You can’t perform that action at this time.
0 commit comments