diff --git a/src/tools/miri/src/concurrency/thread.rs b/src/tools/miri/src/concurrency/thread.rs index 7b91f8c223a..1b05088b3d5 100644 --- a/src/tools/miri/src/concurrency/thread.rs +++ b/src/tools/miri/src/concurrency/thread.rs @@ -183,7 +183,8 @@ impl<'mir, 'tcx> Thread<'mir, 'tcx> { impl VisitMachineValues for Thread<'_, '_> { fn visit_machine_values(&self, visit: &mut impl FnMut(&Operand)) { - let Thread { panic_payload, last_error, stack, .. } = self; + let Thread { panic_payload, last_error, stack, state: _, thread_name: _, join_status: _ } = + self; if let Some(payload) = panic_payload { visit(&Operand::Immediate(Immediate::Scalar(*payload))) @@ -199,7 +200,16 @@ impl VisitMachineValues for Thread<'_, '_> { impl VisitMachineValues for Frame<'_, '_, Provenance, FrameData<'_>> { fn visit_machine_values(&self, visit: &mut impl FnMut(&Operand)) { - let Frame { return_place, locals, extra, .. } = self; + let Frame { + return_place, + locals, + extra, + body: _, + instance: _, + return_to_block: _, + loc: _, + .. + } = self; // Return place. if let Place::Ptr(mplace) = **return_place { @@ -290,7 +300,14 @@ impl<'mir, 'tcx> Default for ThreadManager<'mir, 'tcx> { impl VisitMachineValues for ThreadManager<'_, '_> { fn visit_machine_values(&self, visit: &mut impl FnMut(&Operand)) { - let ThreadManager { threads, thread_local_alloc_ids, .. } = self; + let ThreadManager { + threads, + thread_local_alloc_ids, + active_thread: _, + yield_active_thread: _, + sync: _, + timeout_callbacks: _, + } = self; for thread in threads { thread.visit_machine_values(visit); diff --git a/src/tools/miri/src/machine.rs b/src/tools/miri/src/machine.rs index 6a06df2a16b..35d5c0d9a87 100644 --- a/src/tools/miri/src/machine.rs +++ b/src/tools/miri/src/machine.rs @@ -65,7 +65,7 @@ impl<'tcx> std::fmt::Debug for FrameData<'tcx> { impl VisitMachineValues for FrameData<'_> { fn visit_machine_values(&self, visit: &mut impl FnMut(&Operand)) { - let FrameData { catch_unwind, .. } = self; + let FrameData { catch_unwind, stacked_borrows: _, timing: _ } = self; if let Some(catch_unwind) = catch_unwind { catch_unwind.visit_machine_values(visit); diff --git a/src/tools/miri/src/shims/panic.rs b/src/tools/miri/src/shims/panic.rs index dd6e2d53b4e..be14892f696 100644 --- a/src/tools/miri/src/shims/panic.rs +++ b/src/tools/miri/src/shims/panic.rs @@ -37,8 +37,9 @@ pub struct CatchUnwindData<'tcx> { impl VisitMachineValues for CatchUnwindData<'_> { fn visit_machine_values(&self, visit: &mut impl FnMut(&Operand)) { - visit(&Operand::Indirect(MemPlace::from_ptr(self.catch_fn))); - visit(&Operand::Immediate(Immediate::Scalar(self.data))); + let CatchUnwindData { catch_fn, data, dest: _, ret: _ } = self; + visit(&Operand::Indirect(MemPlace::from_ptr(*catch_fn))); + visit(&Operand::Immediate(Immediate::Scalar(*data))); } } diff --git a/src/tools/miri/src/shims/unix/fs.rs b/src/tools/miri/src/shims/unix/fs.rs index 576e12d3475..59d24e00dc1 100644 --- a/src/tools/miri/src/shims/unix/fs.rs +++ b/src/tools/miri/src/shims/unix/fs.rs @@ -464,7 +464,9 @@ impl Default for DirHandler { impl VisitMachineValues for DirHandler { fn visit_machine_values(&self, visit: &mut impl FnMut(&Operand)) { - for dir in self.streams.values() { + let DirHandler { streams, next_id: _ } = self; + + for dir in streams.values() { visit(&Operand::Indirect(MemPlace::from_ptr(dir.entry))); } } diff --git a/src/tools/miri/src/stacked_borrows/stack.rs b/src/tools/miri/src/stacked_borrows/stack.rs index eb30f023935..57de1c21c8b 100644 --- a/src/tools/miri/src/stacked_borrows/stack.rs +++ b/src/tools/miri/src/stacked_borrows/stack.rs @@ -46,7 +46,7 @@ impl Stack { // For stacks with a known bottom, we never consider removing the bottom-most tag, because // that is the base tag which exists whether or not there are any pointers to the // allocation. - let mut read_idx = usize::from(self.unknown_bottom.is_none()); + let mut read_idx = if self.unknown_bottom.is_some() { 0 } else { 1 }; let mut write_idx = read_idx; while read_idx < self.borrows.len() { let left = self.borrows[read_idx - 1];