diff options
| -rw-r--r-- | src/comp/middle/trans_uniq.rs | 6 | ||||
| -rw-r--r-- | src/test/run-pass/expr-alt-generic-unique1.rs | 1 | ||||
| -rw-r--r-- | src/test/run-pass/expr-block-generic-unique1.rs | 1 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/comp/middle/trans_uniq.rs b/src/comp/middle/trans_uniq.rs index a7649961c74..52efa7aec8b 100644 --- a/src/comp/middle/trans_uniq.rs +++ b/src/comp/middle/trans_uniq.rs @@ -12,7 +12,8 @@ import trans::{ INIT, trans_shared_free, drop_ty, - new_sub_block_ctxt + new_sub_block_ctxt, + load_if_immediate }; export trans_uniq, make_free_glue, type_is_unique_box, copy_val, @@ -115,7 +116,8 @@ fn duplicate(bcx: @block_ctxt, v: ValueRef, t: ty::t) let content_ty = content_ty(bcx, t); let {bcx, val: llptr} = alloc_uniq(bcx, t); - let src = Load(bcx, Load(bcx, v)); + let src = Load(bcx, v); + let src = load_if_immediate(bcx, src, content_ty); let dst = llptr; let bcx = trans::copy_val(bcx, INIT, dst, src, content_ty); Store(bcx, dst, v); diff --git a/src/test/run-pass/expr-alt-generic-unique1.rs b/src/test/run-pass/expr-alt-generic-unique1.rs index ba606e78d34..cda82c2ca08 100644 --- a/src/test/run-pass/expr-alt-generic-unique1.rs +++ b/src/test/run-pass/expr-alt-generic-unique1.rs @@ -1,4 +1,3 @@ -// xfail-test // -*- rust -*- diff --git a/src/test/run-pass/expr-block-generic-unique1.rs b/src/test/run-pass/expr-block-generic-unique1.rs index 4048f249700..feff0faad92 100644 --- a/src/test/run-pass/expr-block-generic-unique1.rs +++ b/src/test/run-pass/expr-block-generic-unique1.rs @@ -1,4 +1,3 @@ -// xfail-test // -*- rust -*- |
