aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/middle')
-rw-r--r--src/comp/middle/trans.rs6
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;