From df19b856cebdf14e9016efce4e186b038712ef0a Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 27 Aug 2022 08:51:41 -0400 Subject: [PATCH] rustup --- rust-version | 2 +- src/concurrency/data_race.rs | 19 +++---------------- src/concurrency/weak_memory.rs | 10 ++-------- src/shims/ffi_support.rs | 2 +- src/shims/intrinsics/simd.rs | 7 ++----- src/shims/os_str.rs | 3 +-- src/shims/unix/freebsd/foreign_items.rs | 6 ++---- src/shims/unix/linux/foreign_items.rs | 6 ++---- src/shims/unix/macos/foreign_items.rs | 2 +- src/shims/unix/sync.rs | 6 +++--- src/shims/windows/dlsym.rs | 2 +- src/shims/windows/handle.rs | 2 +- src/shims/windows/sync.rs | 2 +- src/shims/windows/thread.rs | 7 +------ 14 files changed, 22 insertions(+), 54 deletions(-) diff --git a/rust-version b/rust-version index e3e71f5c2fd2..9b8d986c6711 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -e1b28cd2f16bd5b832183d7968cae3bb9213e78d +4065b89b1e7287047d7d6c65e7abd7b8ee70bcf0 diff --git a/src/concurrency/data_race.rs b/src/concurrency/data_race.rs index 223fad40362a..87f64db26d3a 100644 --- a/src/concurrency/data_race.rs +++ b/src/concurrency/data_race.rs @@ -530,12 +530,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriEvalContextExt<'mir, 'tcx> { this.validate_atomic_rmw(place, atomic)?; - this.buffered_atomic_rmw( - val.to_scalar(), - place, - atomic, - old.to_scalar(), - )?; + this.buffered_atomic_rmw(val.to_scalar(), place, atomic, old.to_scalar())?; Ok(old) } @@ -586,12 +581,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriEvalContextExt<'mir, 'tcx> { this.validate_atomic_rmw(place, atomic)?; - this.buffered_atomic_rmw( - new_val.to_scalar(), - place, - atomic, - old.to_scalar(), - )?; + this.buffered_atomic_rmw(new_val.to_scalar(), place, atomic, old.to_scalar())?; // Return the old value. Ok(old) @@ -633,10 +623,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriEvalContextExt<'mir, 'tcx> { } else { true }; - let res = Immediate::ScalarPair( - old.to_scalar(), - Scalar::from_bool(cmpxchg_success).into(), - ); + let res = Immediate::ScalarPair(old.to_scalar(), Scalar::from_bool(cmpxchg_success)); // Update ptr depending on comparison. // if successful, perform a full rw-atomic validation diff --git a/src/concurrency/weak_memory.rs b/src/concurrency/weak_memory.rs index bd43e848af73..5a5c2c211bc9 100644 --- a/src/concurrency/weak_memory.rs +++ b/src/concurrency/weak_memory.rs @@ -77,9 +77,7 @@ use std::{ collections::VecDeque, }; -use rustc_const_eval::interpret::{ - alloc_range, AllocRange, InterpResult, MPlaceTy, Scalar, -}; +use rustc_const_eval::interpret::{alloc_range, AllocRange, InterpResult, MPlaceTy, Scalar}; use rustc_data_structures::fx::FxHashMap; use crate::*; @@ -417,11 +415,7 @@ impl StoreElement { /// buffer regardless of subsequent loads by the same thread; if the earliest load of another /// thread doesn't happen before the current one, then no subsequent load by the other thread /// can happen before the current one. - fn load_impl( - &self, - index: VectorIdx, - clocks: &ThreadClockSet, - ) -> Scalar { + fn load_impl(&self, index: VectorIdx, clocks: &ThreadClockSet) -> Scalar { let _ = self.loads.borrow_mut().try_insert(index, clocks.clock[index]); self.val } diff --git a/src/shims/ffi_support.rs b/src/shims/ffi_support.rs index f1ae1e7d3f47..844bcb40d535 100644 --- a/src/shims/ffi_support.rs +++ b/src/shims/ffi_support.rs @@ -13,7 +13,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx /// Extract the scalar value from the result of reading a scalar from the machine, /// and convert it to a `CArg`. fn scalar_to_carg( - k: ScalarMaybeUninit, + k: Scalar, arg_type: Ty<'tcx>, cx: &impl HasDataLayout, ) -> InterpResult<'tcx, CArg> { diff --git a/src/shims/intrinsics/simd.rs b/src/shims/intrinsics/simd.rs index 95763e1e832f..1698477cbde8 100644 --- a/src/shims/intrinsics/simd.rs +++ b/src/shims/intrinsics/simd.rs @@ -396,11 +396,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx let dest_len = u32::try_from(dest_len).unwrap(); let bitmask_len = u32::try_from(bitmask_len).unwrap(); - let mask: u64 = this - .read_scalar(mask)? - .to_bits(mask.layout.size)? - .try_into() - .unwrap(); + let mask: u64 = + this.read_scalar(mask)?.to_bits(mask.layout.size)?.try_into().unwrap(); for i in 0..dest_len { let mask = mask & 1u64 diff --git a/src/shims/os_str.rs b/src/shims/os_str.rs index fcf92dfc9f93..6ca09f3fcad1 100644 --- a/src/shims/os_str.rs +++ b/src/shims/os_str.rs @@ -156,8 +156,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx .unwrap(); // not a ZST, so we will get a result for (offset, wchar) in u16_vec.into_iter().chain(iter::once(0x0000)).enumerate() { let offset = u64::try_from(offset).unwrap(); - alloc - .write_scalar(alloc_range(size2 * offset, size2), Scalar::from_u16(wchar).into())?; + alloc.write_scalar(alloc_range(size2 * offset, size2), Scalar::from_u16(wchar))?; } Ok((true, string_length)) } diff --git a/src/shims/unix/freebsd/foreign_items.rs b/src/shims/unix/freebsd/foreign_items.rs index ec565aa3150e..73464cdacb00 100644 --- a/src/shims/unix/freebsd/foreign_items.rs +++ b/src/shims/unix/freebsd/foreign_items.rs @@ -26,10 +26,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx "pthread_set_name_np" => { let [thread, name] = this.check_shim(abi, Abi::C { unwind: false }, link_name, args)?; - let res = this.pthread_setname_np( - this.read_scalar(thread)?.check_init()?, - this.read_scalar(name)?.check_init()?, - )?; + let res = + this.pthread_setname_np(this.read_scalar(thread)?, this.read_scalar(name)?)?; this.write_scalar(res, dest)?; } diff --git a/src/shims/unix/linux/foreign_items.rs b/src/shims/unix/linux/foreign_items.rs index 3c042740b506..afa0591a3c97 100644 --- a/src/shims/unix/linux/foreign_items.rs +++ b/src/shims/unix/linux/foreign_items.rs @@ -68,10 +68,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx "pthread_setname_np" => { let [thread, name] = this.check_shim(abi, Abi::C { unwind: false }, link_name, args)?; - let res = this.pthread_setname_np( - this.read_scalar(thread)?.check_init()?, - this.read_scalar(name)?.check_init()?, - )?; + let res = + this.pthread_setname_np(this.read_scalar(thread)?, this.read_scalar(name)?)?; this.write_scalar(res, dest)?; } diff --git a/src/shims/unix/macos/foreign_items.rs b/src/shims/unix/macos/foreign_items.rs index fa4001bab187..9ad2ef47e094 100644 --- a/src/shims/unix/macos/foreign_items.rs +++ b/src/shims/unix/macos/foreign_items.rs @@ -176,7 +176,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx "pthread_setname_np" => { let [name] = this.check_shim(abi, Abi::C { unwind: false }, link_name, args)?; let thread = this.pthread_self()?; - this.pthread_setname_np(thread, this.read_scalar(name)?.check_init()?)?; + this.pthread_setname_np(thread, this.read_scalar(name)?)?; } // Incomplete shims that we "stub out" just to get pre-main initialization code to work. diff --git a/src/shims/unix/sync.rs b/src/shims/unix/sync.rs index 88c5d2e3f81e..0a4904f4bac7 100644 --- a/src/shims/unix/sync.rs +++ b/src/shims/unix/sync.rs @@ -119,7 +119,7 @@ fn mutex_get_or_create_id<'mir, 'tcx: 'mir>( .atomic_compare_exchange_scalar( &value_place, &ImmTy::from_uint(0u32, ecx.machine.layouts.u32), - next_id.to_u32_scalar().into(), + next_id.to_u32_scalar(), AtomicRwOrd::Relaxed, AtomicReadOrd::Relaxed, false, @@ -160,7 +160,7 @@ fn rwlock_get_or_create_id<'mir, 'tcx: 'mir>( .atomic_compare_exchange_scalar( &value_place, &ImmTy::from_uint(0u32, ecx.machine.layouts.u32), - next_id.to_u32_scalar().into(), + next_id.to_u32_scalar(), AtomicRwOrd::Relaxed, AtomicReadOrd::Relaxed, false, @@ -243,7 +243,7 @@ fn cond_get_or_create_id<'mir, 'tcx: 'mir>( .atomic_compare_exchange_scalar( &value_place, &ImmTy::from_uint(0u32, ecx.machine.layouts.u32), - next_id.to_u32_scalar().into(), + next_id.to_u32_scalar(), AtomicRwOrd::Relaxed, AtomicReadOrd::Relaxed, false, diff --git a/src/shims/windows/dlsym.rs b/src/shims/windows/dlsym.rs index d87ca8f81841..5cbfecb889a2 100644 --- a/src/shims/windows/dlsym.rs +++ b/src/shims/windows/dlsym.rs @@ -112,7 +112,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx Dlsym::SetThreadDescription => { let [handle, name] = check_arg_count(args)?; - let handle = this.read_scalar(handle)?.check_init()?; + let handle = this.read_scalar(handle)?; let name = this.read_wide_str(this.read_pointer(name)?)?; diff --git a/src/shims/windows/handle.rs b/src/shims/windows/handle.rs index 92e0a9a34e12..69a6bd38d09e 100644 --- a/src/shims/windows/handle.rs +++ b/src/shims/windows/handle.rs @@ -158,7 +158,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx fn CloseHandle(&mut self, handle_op: &OpTy<'tcx, Provenance>) -> InterpResult<'tcx> { let this = self.eval_context_mut(); - let handle = this.read_scalar(handle_op)?.check_init()?; + let handle = this.read_scalar(handle_op)?; match Handle::from_scalar(handle, this)? { Some(Handle::Thread(thread)) => diff --git a/src/shims/windows/sync.rs b/src/shims/windows/sync.rs index e998b68a421f..60645ee7d956 100644 --- a/src/shims/windows/sync.rs +++ b/src/shims/windows/sync.rs @@ -14,7 +14,7 @@ fn srwlock_get_or_create_id<'mir, 'tcx: 'mir>( .atomic_compare_exchange_scalar( &value_place, &ImmTy::from_uint(0u32, ecx.machine.layouts.u32), - next_id.to_u32_scalar().into(), + next_id.to_u32_scalar(), AtomicRwOrd::Relaxed, AtomicReadOrd::Relaxed, false, diff --git a/src/shims/windows/thread.rs b/src/shims/windows/thread.rs index 06a5887d3e50..2b801ae31203 100644 --- a/src/shims/windows/thread.rs +++ b/src/shims/windows/thread.rs @@ -20,14 +20,10 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx let this = self.eval_context_mut(); let security = this.read_pointer(security_op)?; - // stacksize is ignored, but still needs to be a valid usize this.read_scalar(stacksize_op)?.to_machine_usize(this)?; - let start_routine = this.read_pointer(start_op)?; - let func_arg = this.read_immediate(arg_op)?; - let flags = this.read_scalar(flags_op)?.to_u32()?; let thread = if this.ptr_is_null(this.read_pointer(thread_op)?)? { @@ -66,8 +62,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx ) -> InterpResult<'tcx, u32> { let this = self.eval_context_mut(); - let handle = this.read_scalar(handle_op)?.check_init()?; - + let handle = this.read_scalar(handle_op)?; let timeout = this.read_scalar(timeout_op)?.to_u32()?; let thread = match Handle::from_scalar(handle, this)? {