about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Sullivan <sully@msully.net>2011-08-18 18:16:11 -0700
committerMichael Sullivan <sully@msully.net>2011-08-18 18:16:11 -0700
commit30b5f851c57ff1e5aabaf25277aaaacff4df2c7b (patch)
tree64e84958bb3421ec8a5b26bb822964fa61f1d628
parente7c8019dd9889e1736b075d1b205f8b118b286b3 (diff)
parent031529e3fe34267168a43cf74dbdd9e41f12ac43 (diff)
downloadrust-30b5f851c57ff1e5aabaf25277aaaacff4df2c7b.tar.gz
rust-30b5f851c57ff1e5aabaf25277aaaacff4df2c7b.zip
Merge remote-tracking branch 'graydon/master'
-rw-r--r--src/comp/middle/trans.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 122d666cc2f..1302e6d0744 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -5626,7 +5626,9 @@ fn alloc_ty(cx: &@block_ctxt, t: &ty::t) -> result {
     // past caller conventions and may well make sense again,
     // so we leave it as-is.
 
-    bcx = gc::add_gc_root(bcx, val, t);
+    if (bcx_tcx(cx).sess.get_opts().do_gc) {
+        bcx = gc::add_gc_root(bcx, val, t);
+    }
 
     ret rslt(cx, val);
 }