From 9782b7b039ce1fb585c933d8ce64610256399c59 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 16 Jul 2022 23:40:36 -0400 Subject: [PATCH 1/2] rustup --- rust-version | 2 +- src/helpers.rs | 2 +- src/shims/backtrace.rs | 2 +- src/shims/windows/foreign_items.rs | 2 -- tests/fail/stacked_borrows/issue-miri-1050-1.rs | 2 +- tests/fail/stacked_borrows/issue-miri-1050-1.stderr | 4 ++-- tests/fail/stacked_borrows/issue-miri-1050-2.rs | 2 +- tests/fail/stacked_borrows/issue-miri-1050-2.stderr | 4 ++-- 8 files changed, 9 insertions(+), 11 deletions(-) diff --git a/rust-version b/rust-version index 86a09bfa57b..5396b338cec 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -6077b7cda466afa2b75a62b232ab46dbeb148bcb +db41351753df840773ca628d8daa040e95d00eef diff --git a/src/helpers.rs b/src/helpers.rs index d0b0852d010..b650e2ddf22 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -631,7 +631,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // Ensure that the access is within bounds. assert!(op_place.layout.size >= offset + layout.size); - let value_place = op_place.offset(offset, MemPlaceMeta::None, layout, this)?; + let value_place = op_place.offset(offset, layout, this)?; Ok(value_place) } diff --git a/src/shims/backtrace.rs b/src/shims/backtrace.rs index 4aa58b45662..62e5afbca8b 100644 --- a/src/shims/backtrace.rs +++ b/src/shims/backtrace.rs @@ -105,7 +105,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx let offset = ptr_layout.size * i.try_into().unwrap(); let op_place = - buf_place.offset(offset, MemPlaceMeta::None, ptr_layout, this)?; + buf_place.offset(offset, ptr_layout, this)?; this.write_pointer(ptr, &op_place.into())?; } diff --git a/src/shims/windows/foreign_items.rs b/src/shims/windows/foreign_items.rs index 0bb082dba9b..689d1873d58 100644 --- a/src/shims/windows/foreign_items.rs +++ b/src/shims/windows/foreign_items.rs @@ -154,7 +154,6 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // Set page size. let page_size = system_info.offset( field_offsets[2], - MemPlaceMeta::None, dword_layout, &this.tcx, )?; @@ -165,7 +164,6 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // Set number of processors. let num_cpus = system_info.offset( field_offsets[6], - MemPlaceMeta::None, dword_layout, &this.tcx, )?; diff --git a/tests/fail/stacked_borrows/issue-miri-1050-1.rs b/tests/fail/stacked_borrows/issue-miri-1050-1.rs index 6e14b9af146..1e44cc6c800 100644 --- a/tests/fail/stacked_borrows/issue-miri-1050-1.rs +++ b/tests/fail/stacked_borrows/issue-miri-1050-1.rs @@ -3,6 +3,6 @@ fn main() { unsafe { let ptr = Box::into_raw(Box::new(0u16)); - Box::from_raw(ptr as *mut u32); + drop(Box::from_raw(ptr as *mut u32)); } } diff --git a/tests/fail/stacked_borrows/issue-miri-1050-1.stderr b/tests/fail/stacked_borrows/issue-miri-1050-1.stderr index 946e3e8e666..4d8488fa768 100644 --- a/tests/fail/stacked_borrows/issue-miri-1050-1.stderr +++ b/tests/fail/stacked_borrows/issue-miri-1050-1.stderr @@ -12,8 +12,8 @@ LL | Box(unsafe { Unique::new_unchecked(raw) }, alloc) note: inside `main` at $DIR/issue-miri-1050-1.rs:LL:CC --> $DIR/issue-miri-1050-1.rs:LL:CC | -LL | Box::from_raw(ptr as *mut u32); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | drop(Box::from_raw(ptr as *mut u32)); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace diff --git a/tests/fail/stacked_borrows/issue-miri-1050-2.rs b/tests/fail/stacked_borrows/issue-miri-1050-2.rs index 571cb6213fe..6e90559a9ef 100644 --- a/tests/fail/stacked_borrows/issue-miri-1050-2.rs +++ b/tests/fail/stacked_borrows/issue-miri-1050-2.rs @@ -4,6 +4,6 @@ use std::ptr::NonNull; fn main() { unsafe { let ptr = NonNull::::dangling(); - Box::from_raw(ptr.as_ptr()); + drop(Box::from_raw(ptr.as_ptr())); } } diff --git a/tests/fail/stacked_borrows/issue-miri-1050-2.stderr b/tests/fail/stacked_borrows/issue-miri-1050-2.stderr index 33ac3117667..562a82fb610 100644 --- a/tests/fail/stacked_borrows/issue-miri-1050-2.stderr +++ b/tests/fail/stacked_borrows/issue-miri-1050-2.stderr @@ -12,8 +12,8 @@ LL | Box(unsafe { Unique::new_unchecked(raw) }, alloc) note: inside `main` at $DIR/issue-miri-1050-2.rs:LL:CC --> $DIR/issue-miri-1050-2.rs:LL:CC | -LL | Box::from_raw(ptr.as_ptr()); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | drop(Box::from_raw(ptr.as_ptr())); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace From e8ab64e424a377cdb5d6373b10d4d6ed68e38f13 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 16 Jul 2022 23:44:37 -0400 Subject: [PATCH 2/2] make unused flags work like they used to --- src/shims/backtrace.rs | 3 +-- src/shims/windows/foreign_items.rs | 12 ++---------- tests/compiletest.rs | 3 ++- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/shims/backtrace.rs b/src/shims/backtrace.rs index 62e5afbca8b..5b39f2a48aa 100644 --- a/src/shims/backtrace.rs +++ b/src/shims/backtrace.rs @@ -104,8 +104,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx for (i, ptr) in ptrs.into_iter().enumerate() { let offset = ptr_layout.size * i.try_into().unwrap(); - let op_place = - buf_place.offset(offset, ptr_layout, this)?; + let op_place = buf_place.offset(offset, ptr_layout, this)?; this.write_pointer(ptr, &op_place.into())?; } diff --git a/src/shims/windows/foreign_items.rs b/src/shims/windows/foreign_items.rs index 689d1873d58..28e60a68048 100644 --- a/src/shims/windows/foreign_items.rs +++ b/src/shims/windows/foreign_items.rs @@ -152,21 +152,13 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx .collect(); // Set page size. - let page_size = system_info.offset( - field_offsets[2], - dword_layout, - &this.tcx, - )?; + let page_size = system_info.offset(field_offsets[2], dword_layout, &this.tcx)?; this.write_scalar( Scalar::from_int(PAGE_SIZE, dword_layout.size), &page_size.into(), )?; // Set number of processors. - let num_cpus = system_info.offset( - field_offsets[6], - dword_layout, - &this.tcx, - )?; + let num_cpus = system_info.offset(field_offsets[6], dword_layout, &this.tcx)?; this.write_scalar(Scalar::from_int(NUM_CPUS, dword_layout.size), &num_cpus.into())?; } diff --git a/tests/compiletest.rs b/tests/compiletest.rs index c568d1c5043..ec49e80ca96 100644 --- a/tests/compiletest.rs +++ b/tests/compiletest.rs @@ -19,9 +19,10 @@ fn run_tests(mode: Mode, path: &str, target: Option) -> Result<()> { // Less aggressive warnings to make the rustc toolstate management less painful. // (We often get warnings when e.g. a feature gets stabilized or some lint gets added/improved.) flags.push("-Astable-features".to_owned()); + flags.push("-Aunused".to_owned()); } else { flags.push("-Dwarnings".to_owned()); - flags.push("-Dunused".to_owned()); // overwrite the -Aunused in compiletest-rs + flags.push("-Dunused".to_owned()); } if let Ok(sysroot) = env::var("MIRI_SYSROOT") { flags.push("--sysroot".to_string());