diff options
Diffstat (limited to 'src/comp/middle')
| -rw-r--r-- | src/comp/middle/trans.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 99ac225f..6fdc84f3 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -4403,7 +4403,11 @@ fn trans_args(@block_ctxt cx, lv = trans_lval(bcx, e); } else { auto r = trans_expr(bcx, e); - lv = lval_val(r.bcx, r.val); + if (type_is_immediate(ty.expr_ty(e))) { + lv = lval_val(r.bcx, r.val); + } else { + lv = lval_mem(r.bcx, r.val); + } } bcx = lv.res.bcx; |