about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2011-08-24 10:55:34 +0200
committerMarijn Haverbeke <marijnh@gmail.com>2011-08-24 10:55:34 +0200
commitbead045f2724e3a256a2123a844b079f82047dd4 (patch)
tree0f59cd2c225df5f6248757d47378411b976f152e
parent18576e55f72b9bdcb0998870377e09b02b033f8b (diff)
downloadrust-bead045f2724e3a256a2123a844b079f82047dd4.tar.gz
rust-bead045f2724e3a256a2123a844b079f82047dd4.zip
Check for is_terminated after translating a block
Closes #861
-rw-r--r--src/comp/middle/trans.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index de05fd265e2..35390bc1b92 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) {