From 181097da3315fa143c686a37d1a0c8b32fe9a3fb Mon Sep 17 00:00:00 2001 From: Eduard Burtescu Date: Fri, 18 Mar 2016 05:29:53 +0200 Subject: [PATCH] trans: Decide whether to load volatile_store's argument based on its ArgType. --- src/librustc_trans/trans/intrinsic.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/librustc_trans/trans/intrinsic.rs b/src/librustc_trans/trans/intrinsic.rs index 1140edeaec0..43976f8233b 100644 --- a/src/librustc_trans/trans/intrinsic.rs +++ b/src/librustc_trans/trans/intrinsic.rs @@ -589,10 +589,10 @@ pub fn trans_intrinsic_call<'a, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>, }, (_, "volatile_store") => { let tp_ty = *substs.types.get(FnSpace, 0); - let val = if type_is_immediate(bcx.ccx(), tp_ty) { - from_immediate(bcx, llargs[1]) - } else { + let val = if fn_ty.args[1].is_indirect() { Load(bcx, llargs[1]) + } else { + from_immediate(bcx, llargs[1]) }; let ptr = PointerCast(bcx, llargs[0], val_ty(val).ptr_to()); let store = VolatileStore(bcx, val, ptr);