Skip to content

Commit 3df4e7e

Browse files
committed
---
yaml --- r: 14326 b: refs/heads/try c: e62ddf4 h: refs/heads/master v: v3
1 parent a741ca5 commit 3df4e7e

File tree

5 files changed

+172
-155
lines changed

5 files changed

+172
-155
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
refs/heads/master: 61b1875c16de39c166b0f4d54bba19f9c6777d1a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
5-
refs/heads/try: ea6bb5aafa1827718b143a3657a212cf28e2e08e
5+
refs/heads/try: e62ddf48988087d19934e1fdc6abb6de5f7a6a02
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/try/src/comp/middle/trans/alt.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -691,14 +691,16 @@ fn trans_alt(cx: @block_ctxt, expr: @ast::expr, arms_: [ast::arm],
691691
a.pats[0])) {
692692
let arm_dest = base::dup_for_join(dest);
693693
arm_dests += [arm_dest];
694-
arm_cxs += [base::trans_block_dps(body_cx, a.body, arm_dest)];
694+
let arm_cx = base::trans_block(body_cx, a.body, arm_dest);
695+
arm_cx = base::trans_block_cleanups(arm_cx, body_cx);
696+
arm_cxs += [arm_cx];
695697
}
696698
i += 1u;
697699
}
698-
let after_cx = base::join_returns(cx, arm_cxs, arm_dests, dest);
699-
after_cx = base::trans_block_cleanups(after_cx, alt_cx);
700-
let next_cx = new_sub_block_ctxt(after_cx, "next");
701-
Br(after_cx, next_cx.llbb);
700+
let after_cx = base::join_returns(alt_cx, arm_cxs, arm_dests, dest);
701+
let next_cx = new_sub_block_ctxt(cx, "next");
702+
if after_cx.unreachable { Unreachable(next_cx); }
703+
base::cleanup_and_Br(after_cx, alt_cx, next_cx.llbb);
702704
ret next_cx;
703705
}
704706

0 commit comments

Comments
 (0)