diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index de05fd265e2e02fc9135c9f1bfeaa62c154a4175..35390bc1b92c20bbb4b97d1e1bee918323df481e 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -4303,7 +4303,7 @@ fn trans_expr_out(cx: &@block_ctxt, e: &@ast::expr, output: out_method) -> with_out_method(bind trans_block(sub_cx, blk, _), cx, e.id, output); cx.build.Br(sub_cx.llbb); - sub.bcx.build.Br(next_cx.llbb); + if !is_terminated(sub.bcx) { sub.bcx.build.Br(next_cx.llbb); } ret rslt(next_cx, sub.val); } ast::expr_copy(a) {