From 5721927afe9ccae2d09691d20223e68d8669fb0c Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Tue, 19 Jul 2022 15:44:47 -0400 Subject: [PATCH] rustup --- rust-version | 2 +- src/helpers.rs | 2 +- src/shims/intrinsics/mod.rs | 4 ++-- src/shims/panic.rs | 2 +- src/shims/unix/linux/sync.rs | 2 +- src/shims/unix/sync.rs | 3 +-- src/stacked_borrows/mod.rs | 6 +++--- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/rust-version b/rust-version index f4afa435345..38f4b2bda5f 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -4603ac31b0655793a82f110f544dc1c6abc57bb7 +29c5a028b0c92aa5da6a8eb6d6585a389fcf1035 diff --git a/src/helpers.rs b/src/helpers.rs index b650e2ddf22..190eb2098ad 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -258,7 +258,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // Push frame. let mir = this.load_mir(f.def, None)?; let dest = match dest { - Some(dest) => *dest, + Some(dest) => dest.clone(), None => MPlaceTy::fake_alloc_zst(this.layout_of(mir.return_ty())?).into(), }; this.push_stack_frame(f, mir, &dest, stack_pop)?; diff --git a/src/shims/intrinsics/mod.rs b/src/shims/intrinsics/mod.rs index 9ffa40f3335..97f9a7b93ca 100644 --- a/src/shims/intrinsics/mod.rs +++ b/src/shims/intrinsics/mod.rs @@ -224,7 +224,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx "frem_fast" => mir::BinOp::Rem, _ => bug!(), }; - let float_finite = |x: ImmTy<'tcx, _>| -> InterpResult<'tcx, bool> { + let float_finite = |x: &ImmTy<'tcx, _>| -> InterpResult<'tcx, bool> { Ok(match x.layout.ty.kind() { ty::Float(FloatTy::F32) => x.to_scalar()?.to_f32()?.is_finite(), ty::Float(FloatTy::F64) => x.to_scalar()?.to_f64()?.is_finite(), @@ -234,7 +234,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx ), }) }; - match (float_finite(a)?, float_finite(b)?) { + match (float_finite(&a)?, float_finite(&b)?) { (false, false) => throw_ub_format!( "`{intrinsic_name}` intrinsic called with non-finite value as both parameters", ), diff --git a/src/shims/panic.rs b/src/shims/panic.rs index c356dd86676..42264f6ff34 100644 --- a/src/shims/panic.rs +++ b/src/shims/panic.rs @@ -108,7 +108,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // when we pop this frame. if this.tcx.sess.panic_strategy() == PanicStrategy::Unwind { this.frame_mut().extra.catch_unwind = - Some(CatchUnwindData { catch_fn, data, dest: *dest, ret }); + Some(CatchUnwindData { catch_fn, data, dest: dest.clone(), ret }); } Ok(()) diff --git a/src/shims/unix/linux/sync.rs b/src/shims/unix/linux/sync.rs index a81fdb5e998..d921b66afbd 100644 --- a/src/shims/unix/linux/sync.rs +++ b/src/shims/unix/linux/sync.rs @@ -188,8 +188,8 @@ pub fn futex<'tcx>( this.write_scalar(Scalar::from_machine_isize(0, this), dest)?; // Register a timeout callback if a timeout was specified. // This callback will override the return value when the timeout triggers. - let dest = *dest; if let Some(timeout_time) = timeout_time { + let dest = dest.clone(); this.register_timeout_callback( thread, timeout_time, diff --git a/src/shims/unix/sync.rs b/src/shims/unix/sync.rs index ae63907c2c8..590bc1bf005 100644 --- a/src/shims/unix/sync.rs +++ b/src/shims/unix/sync.rs @@ -828,9 +828,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // We return success for now and override it in the timeout callback. this.write_scalar(Scalar::from_i32(0), dest)?; - let dest = *dest; - // Register the timeout callback. + let dest = dest.clone(); this.register_timeout_callback( active_thread, timeout_time, diff --git a/src/stacked_borrows/mod.rs b/src/stacked_borrows/mod.rs index 9040d03632e..fb40291302d 100644 --- a/src/stacked_borrows/mod.rs +++ b/src/stacked_borrows/mod.rs @@ -985,7 +985,7 @@ trait EvalContextPrivExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // See https://github.com/rust-lang/unsafe-code-guidelines/issues/276. let size = match size { Some(size) => size, - None => return Ok(*val), + None => return Ok(val.clone()), }; // Compute new borrow. @@ -1116,13 +1116,13 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx /// explicit. Also see . fn retag_return_place(&mut self) -> InterpResult<'tcx> { let this = self.eval_context_mut(); - let return_place = this.frame_mut().return_place; + let return_place = &this.frame().return_place; if return_place.layout.is_zst() { // There may not be any memory here, nothing to do. return Ok(()); } // We need this to be in-memory to use tagged pointers. - let return_place = this.force_allocation(&return_place)?; + let return_place = this.force_allocation(&return_place.clone())?; // We have to turn the place into a pointer to use the existing code. // (The pointer type does not matter, so we use a raw pointer.)