From 12e129579dec84add38d632652d75253e96cf75f Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Thu, 19 Jul 2018 19:42:07 +0200 Subject: [PATCH] Fix a bug --- src/abi.rs | 3 +-- src/base.rs | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/abi.rs b/src/abi.rs index 69e33175c770..cd250d77c2fe 100644 --- a/src/abi.rs +++ b/src/abi.rs @@ -108,9 +108,8 @@ pub fn codegen_call<'a, 'tcx: 'a>( args .into_iter() .map(|arg| { - let ty = arg.ty(&fx.mir.local_decls, fx.tcx); let arg = ::base::trans_operand(fx, arg); - if let Some(_) = fx.cton_type(ty) { + if let Some(_) = fx.cton_type(arg.layout().ty) { arg.load_value(fx) } else { arg.force_stack(fx) diff --git a/src/base.rs b/src/base.rs index 773ba27dc71f..a12c785a1bf5 100644 --- a/src/base.rs +++ b/src/base.rs @@ -185,6 +185,7 @@ fn trans_stmt<'a, 'tcx: 'a>(fx: &mut FunctionCx<'a, 'tcx>, stmt: &Statement<'tcx match layout.variants { layout::Variants::Single { index } => { assert_eq!(index, *variant_index); + fx.bcx.ins().nop(); } layout::Variants::Tagged { .. } => { let ptr = place.place_field(fx, mir::Field::new(0)); @@ -212,6 +213,8 @@ fn trans_stmt<'a, 'tcx: 'a>(fx: &mut FunctionCx<'a, 'tcx>, stmt: &Statement<'tcx CValue::const_val(fx, niche.layout().ty, niche_value as u64 as i64) }; niche.write_cvalue(fx, niche_llval); + } else { + fx.bcx.ins().nop(); } } }