aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-04-20 04:55:55 +0000
committerGraydon Hoare <[email protected]>2011-04-20 04:55:55 +0000
commit9034a8fbd6d44761c182e760a4aedd3a16cea912 (patch)
treec96bd7e6dd2f068398919ce7ae729fac1bda196c
parentSmall fast-path hack to ty.hash_ty and eq_ty. (diff)
downloadrust-9034a8fbd6d44761c182e760a4aedd3a16cea912.tar.xz
rust-9034a8fbd6d44761c182e760a4aedd3a16cea912.zip
Fix #335, log context needs to be a scope to capture cleanups.
-rw-r--r--src/comp/middle/trans.rs2
-rw-r--r--src/test/run-pass/log-err-phi.rs6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index d329630f..f8945b17 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -5133,7 +5133,7 @@ fn trans_log(int lvl, @block_ctxt cx, @ast.expr e) -> result {
lcx.ccx.module_data.insert(modname, global);
}
- auto log_cx = new_sub_block_ctxt(cx, "log");
+ auto log_cx = new_scope_block_ctxt(cx, "log");
auto after_cx = new_sub_block_ctxt(cx, "after");
auto load = cx.build.Load(global);
auto test = cx.build.ICmp(lib.llvm.LLVMIntSGE, load, C_int(lvl));
diff --git a/src/test/run-pass/log-err-phi.rs b/src/test/run-pass/log-err-phi.rs
new file mode 100644
index 00000000..c1cd39da
--- /dev/null
+++ b/src/test/run-pass/log-err-phi.rs
@@ -0,0 +1,6 @@
+fn main() {
+ if (false) {
+ log_err "foo" + "bar";
+ }
+}
+