diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-09-23 23:00:46 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-09-24 12:36:51 -0700 |
| commit | 777a53631301b548be6c195361663178a926c4a3 (patch) | |
| tree | 3b6114c4c94c94d695c42d58eb29569a48929ff3 /src/comp | |
| parent | 856acbf66d21a20bd115f11c55c7abecd1f4c92e (diff) | |
| download | rust-777a53631301b548be6c195361663178a926c4a3.tar.gz rust-777a53631301b548be6c195361663178a926c4a3.zip | |
Support non-immediates in unique-box type glue
Issue #409
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/middle/trans_uniq.rs | 6 |
1 files changed, 4 insertions, 2 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); |
