adjust how backtraces get rendered; always show thread name when there are multiple threads

This commit is contained in:
Ralf Jung 2025-12-07 00:06:07 +01:00
parent d1c8e9342c
commit 8cd16cd18b
235 changed files with 1000 additions and 768 deletions

View file

@ -250,7 +250,7 @@ pub fn report_result<'tcx>(
StackedBorrowsUb { .. } | TreeBorrowsUb { .. } | DataRace { .. } =>
Some("Undefined Behavior"),
LocalDeadlock => {
labels.push(format!("this thread got stuck here"));
labels.push(format!("thread got stuck here"));
None
}
GlobalDeadlock => {
@ -264,10 +264,7 @@ pub fn report_result<'tcx>(
report_msg(
DiagLevel::Error,
format!("the evaluated program deadlocked"),
vec![format!(
"thread `{}` got stuck here",
ecx.machine.threads.get_thread_display_name(thread)
)],
vec![format!("thread got stuck here")],
vec![],
vec![],
&stacktrace,
@ -563,6 +560,7 @@ fn report_msg<'tcx>(
None =>
match thread {
Some(thread_id) => machine.threads.thread_ref(thread_id).origin_span,
// This fallback is super rare, but can happen e.g. when `main` has the wrong ABI
None => DUMMY_SP,
},
};
@ -608,36 +606,53 @@ fn report_msg<'tcx>(
}
// Add backtrace
if stacktrace.len() > 1 {
let mut backtrace_title = String::from("BACKTRACE");
if extra_span {
write!(backtrace_title, " (of the first span)").unwrap();
if let Some((first, rest)) = stacktrace.split_first() {
// Start with the function and thread that contain the first span.
let mut fn_and_thread = String::new();
// Only print thread name if there are multiple threads.
if let Some(thread) = thread
&& machine.threads.get_total_thread_count() > 1
{
write!(
fn_and_thread,
"on thread `{}`",
machine.threads.get_thread_display_name(thread)
)
.unwrap();
}
if let Some(thread) = thread {
let thread_name = machine.threads.get_thread_display_name(thread);
if thread_name != "main" {
// Only print thread name if it is not `main`.
write!(backtrace_title, " on thread `{thread_name}`").unwrap();
};
// Only print function name if we show a backtrace
if rest.len() > 0 {
if !fn_and_thread.is_empty() {
fn_and_thread.push_str(", ");
}
write!(fn_and_thread, "{first}").unwrap();
}
write!(backtrace_title, ":").unwrap();
err.note(backtrace_title);
for (idx, frame_info) in stacktrace.iter().enumerate() {
if !fn_and_thread.is_empty() {
if extra_span && rest.len() > 0 {
// Print a `span_note` as otherwise the backtrace looks attached to the last
// `span_help`. We somewhat arbitrarily use the span of the surrounding function.
err.span_note(
machine.tcx.def_span(first.instance.def_id()),
format!("{level} occurred {fn_and_thread}"),
);
} else {
err.note(format!("this is {fn_and_thread}"));
}
}
// Continue with where that function got called.
for frame_info in rest.iter() {
let is_local = machine.is_local(frame_info.instance);
// No span for non-local frames and the first frame (which is the error site).
if is_local && idx > 0 {
err.subdiagnostic(frame_info.as_note(machine.tcx));
if is_local {
err.span_note(frame_info.span, format!("which got called {frame_info}"));
} else {
let sm = sess.source_map();
let span = sm.span_to_diagnostic_string(frame_info.span);
err.note(format!("{frame_info} at {span}"));
err.note(format!("which got called {frame_info} (at {span})"));
}
}
} else if stacktrace.len() == 0 && !span.is_dummy() {
err.note(format!(
"this {} occurred while pushing a call frame onto an empty stack",
level.to_str()
));
} else if !span.is_dummy() {
err.note(format!("this {level} occurred while pushing a call frame onto an empty stack"));
err.note("the span indicates which code caused the function to be called, but may not be the literal call site");
}

View file

@ -6,6 +6,7 @@ LL | let _val = atomic_ref.load(Ordering::Relaxed);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,9 +6,8 @@ LL | libc::pthread_cond_destroy(cond2.as_mut_ptr());
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
note: inside `main`
= note: this is inside `check`
note: which got called inside `main`
--> tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
LL | check()

View file

@ -6,9 +6,8 @@ LL | libc::pthread_cond_destroy(&mut cond2 as *mut _);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
note: inside `main`
= note: this is inside `check`
note: which got called inside `main`
--> tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
LL | check()

View file

@ -6,6 +6,7 @@ LL | assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `main`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `main`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... assert_eq!(libc::pthread_join(thread_id, ptr::null_mut()), 0);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... assert_eq!(libc::pthread_join(native_copy, ptr::null_mut()), 0);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/concurrency/libc_pthread_mutex_deadlock.rs:LL:CC
|
LL | / thread::spawn(move || {
@ -21,7 +20,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/libc_pthread_mutex_deadlock.rs:LL:CC
|
LL | assert_eq!(libc::pthread_mutex_lock(lock_copy.0.get() as *mut _), 0);
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,11 +6,10 @@ LL | self.1.deallocate(From::from(ptr.cast()), layout);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE on thread `unnamed-ID`:
= note: inside `<std::boxed::Box<Mutex> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::ptr::drop_in_place::<std::boxed::Box<Mutex>> - shim(Some(std::boxed::Box<Mutex>))` at RUSTLIB/core/src/ptr/mod.rs:LL:CC
= note: inside `std::mem::drop::<std::boxed::Box<Mutex>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC
note: inside closure
= note: this is on thread `unnamed-ID`, inside `<std::boxed::Box<Mutex> as std::ops::Drop>::drop`
= note: which got called inside `std::ptr::drop_in_place::<std::boxed::Box<Mutex>> - shim(Some(std::boxed::Box<Mutex>))` (at RUSTLIB/core/src/ptr/mod.rs:LL:CC)
= note: which got called inside `std::mem::drop::<std::boxed::Box<Mutex>>` (at RUSTLIB/core/src/mem/mod.rs:LL:CC)
note: which got called inside closure
--> tests/fail-dep/concurrency/libc_pthread_mutex_free_while_queued.rs:LL:CC
|
LL | drop(unsafe { Box::from_raw(m.get().cast::<Mutex>()) });

View file

@ -6,9 +6,8 @@ LL | libc::pthread_mutex_lock(&mut m2 as *mut _);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
note: inside `main`
= note: this is inside `check`
note: which got called inside `main`
--> tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
LL | check();

View file

@ -6,9 +6,8 @@ LL | libc::pthread_mutex_unlock(&mut m2 as *mut _);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
note: inside `main`
= note: this is inside `check`
note: which got called inside `main`
--> tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
LL | check();

View file

@ -2,7 +2,7 @@ error: a thread deadlocked
--> tests/fail-dep/concurrency/libc_pthread_mutex_normal_reentrant.rs:LL:CC
|
LL | libc::pthread_mutex_lock(&mut mutex as *mut _);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this thread got stuck here
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ thread got stuck here
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... let _val = atomic_ref.load(Ordering::Relaxed);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | atomic_ref.store(0, Ordering::Relaxed);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... assert_eq!(libc::pthread_mutex_unlock(lock_copy.0.get() as *mut _), 0
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,7 +2,7 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/libc_pthread_rwlock_read_write_deadlock_single_thread.rs:LL:CC
|
LL | libc::pthread_rwlock_wrlock(rw.get());
| ^ thread `main` got stuck here
| ^ thread got stuck here
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... assert_eq!(libc::pthread_rwlock_unlock(lock_copy.0.get() as *mut _),
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_read_deadlock.rs:LL:CC
|
LL | / thread::spawn(move || {
@ -21,7 +20,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_read_deadlock.rs:LL:CC
|
LL | assert_eq!(libc::pthread_rwlock_wrlock(lock_copy.0.get() as *mut _), 0);
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,7 +2,7 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_read_deadlock_single_thread.rs:LL:CC
|
LL | libc::pthread_rwlock_rdlock(rw.get());
| ^ thread `main` got stuck here
| ^ thread got stuck here
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_write_deadlock.rs:LL:CC
|
LL | / thread::spawn(move || {
@ -21,7 +20,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_write_deadlock.rs:LL:CC
|
LL | assert_eq!(libc::pthread_rwlock_wrlock(lock_copy.0.get() as *mut _), 0);
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,7 +2,7 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_write_deadlock_single_thread.rs:LL:CC
|
LL | libc::pthread_rwlock_wrlock(rw.get());
| ^ thread `main` got stuck here
| ^ thread got stuck here
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... assert_eq!(libc::pthread_rwlock_unlock(lock_copy.0.get() as *mut _),
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,11 +6,10 @@ LL | let rc = unsafe { c::WaitForSingleObject(self.handle.as_raw_handle(
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/concurrency/windows_join_detached.rs:LL:CC
|
LL | thread.join().unwrap();

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let rc = unsafe { c::WaitForSingleObject(self.handle.as_raw_handle(), c::INFINITE) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/concurrency/windows_join_main.rs:LL:CC
|
LL | / thread::spawn(|| {
@ -22,8 +21,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/windows_join_main.rs:LL:CC
|
LL | assert_eq!(WaitForSingleObject(MAIN_THREAD, INFINITE), WAIT_OBJECT_0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ thread `unnamed-ID` got stuck here
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
= note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let rc = unsafe { c::WaitForSingleObject(self.handle.as_raw_handle(), c::INFINITE) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/concurrency/windows_join_self.rs:LL:CC
|
LL | / thread::spawn(|| {
@ -24,7 +23,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/windows_join_self.rs:LL:CC
|
LL | assert_eq!(WaitForSingleObject(native, INFINITE), WAIT_OBJECT_0);
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | env::set_var("MY_RUST_VAR", "Ferris");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/libc/eventfd_block_read_twice.rs:LL:CC
|
LL | thread2.join().unwrap();
@ -18,7 +17,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/eventfd_block_read_twice.rs:LL:CC
|
LL | let res: i64 = unsafe { libc::read(fd, buf.as_mut_ptr().cast(), 8).try_into().unwrap() };
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/libc/eventfd_block_write_twice.rs:LL:CC
|
LL | thread2.join().unwrap();
@ -18,7 +17,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/eventfd_block_write_twice.rs:LL:CC
|
LL | libc::write(fd, sized_8_data.as_ptr() as *const libc::c_void, 8).try_into().unwrap()
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,7 +2,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/fcntl_fsetfl_while_blocking.rs:LL:CC
|
LL | let _res = unsafe { libc::read(fds[0], buf.as_mut_ptr().cast(), buf.len() as libc::size_t) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `main`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,9 +6,8 @@ LL | let _fd = unsafe { libc::mkstemp(s) };
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `test_mkstemp_immutable_arg` at tests/fail-dep/libc/fs/mkstemp_immutable_arg.rs:LL:CC
note: inside `main`
= note: this is inside `test_mkstemp_immutable_arg`
note: which got called inside `main`
--> tests/fail-dep/libc/fs/mkstemp_immutable_arg.rs:LL:CC
|
LL | test_mkstemp_immutable_arg();

View file

@ -6,9 +6,8 @@ LL | let _fd = unsafe { libc::open(name_ptr, libc::O_CREAT) };
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `test_file_open_missing_needed_mode` at tests/fail-dep/libc/fs/unix_open_missing_required_mode.rs:LL:CC
note: inside `main`
= note: this is inside `test_file_open_missing_needed_mode`
note: which got called inside `main`
--> tests/fail-dep/libc/fs/unix_open_missing_required_mode.rs:LL:CC
|
LL | test_file_open_missing_needed_mode();

View file

@ -11,6 +11,7 @@ LL | unsafe { VAL_TWO = 51 };
| ^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `main`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/libc/libc_epoll_block_two_thread.rs:LL:CC
|
LL | thread2.join().unwrap();
@ -18,7 +17,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/libc_epoll_block_two_thread.rs:LL:CC
|
LL | check_epoll_wait::<TAG>(epfd, &expected, -1);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ thread `unnamed-ID` got stuck here
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/libc/socketpair-close-while-blocked.rs:LL:CC
|
LL | thread1.join().unwrap();
@ -18,7 +17,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/socketpair-close-while-blocked.rs:LL:CC
|
LL | libc::read(fds[1], buf.as_mut_ptr().cast(), buf.len() as libc::size_t)
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | unsafe { VAL = 1 };
| ^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `main`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/libc/socketpair_block_read_twice.rs:LL:CC
|
LL | thread2.join().unwrap();
@ -18,7 +17,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/socketpair_block_read_twice.rs:LL:CC
|
LL | libc::read(fds[1], buf.as_mut_ptr().cast(), buf.len() as libc::size_t)
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,12 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
= note: BACKTRACE:
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
note: inside `main`
= note: this is on thread `main`, inside `std::sys::thread::PLATFORM::Thread::join`
= note: which got called inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` (at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC)
= note: which got called inside `std::thread::JoinHandle::<()>::join` (at RUSTLIB/std/src/thread/join_handle.rs:LL:CC)
note: which got called inside `main`
--> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC
|
LL | thread2.join().unwrap();
@ -18,7 +17,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC
|
LL | let res = unsafe { libc::write(fds[0], data.as_ptr() as *const libc::c_void, data.len()) };
| ^ thread `unnamed-ID` got stuck here
| ^ thread got stuck here
|
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -7,14 +7,13 @@ error: abnormal termination: the program aborted execution
LL | crate::process::abort()
| ^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here
|
= note: BACKTRACE:
= note: inside closure at RUSTLIB/std/src/alloc.rs:LL:CC
= note: inside `std::sys::backtrace::__rust_end_short_backtrace::<{closure@std::alloc::rust_oom::{closure#0}}, !>` at RUSTLIB/std/src/sys/backtrace.rs:LL:CC
= note: inside `std::alloc::rust_oom` at RUSTLIB/std/src/alloc.rs:LL:CC
= note: inside `std::alloc::_::__rust_alloc_error_handler` at RUSTLIB/std/src/alloc.rs:LL:CC
= note: inside `std::alloc::handle_alloc_error::rt_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC
= note: inside `std::alloc::handle_alloc_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC
note: inside `main`
= note: this is inside closure
= note: which got called inside `std::sys::backtrace::__rust_end_short_backtrace::<{closure@std::alloc::rust_oom::{closure#0}}, !>` (at RUSTLIB/std/src/sys/backtrace.rs:LL:CC)
= note: which got called inside `std::alloc::rust_oom` (at RUSTLIB/std/src/alloc.rs:LL:CC)
= note: which got called inside `std::alloc::_::__rust_alloc_error_handler` (at RUSTLIB/std/src/alloc.rs:LL:CC)
= note: which got called inside `std::alloc::handle_alloc_error::rt_error` (at RUSTLIB/alloc/src/alloc.rs:LL:CC)
= note: which got called inside `std::alloc::handle_alloc_error` (at RUSTLIB/alloc/src/alloc.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/alloc/alloc_error_handler.rs:LL:CC
|
LL | handle_alloc_error(Layout::for_value(&0));

View file

@ -5,18 +5,17 @@ error: abnormal termination: the program aborted execution
LL | core::intrinsics::abort();
| ^^^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here
|
= note: BACKTRACE:
= note: inside `alloc_error_handler` at tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
note: inside `_::__rust_alloc_error_handler`
= note: this is inside `alloc_error_handler`
note: which got called inside `_::__rust_alloc_error_handler`
--> tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
|
LL | #[alloc_error_handler]
| ---------------------- in this attribute macro expansion
LL | fn alloc_error_handler(layout: Layout) -> ! {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: inside `alloc::alloc::handle_alloc_error::rt_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC
= note: inside `alloc::alloc::handle_alloc_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC
note: inside `miri_start`
= note: which got called inside `alloc::alloc::handle_alloc_error::rt_error` (at RUSTLIB/alloc/src/alloc.rs:LL:CC)
= note: which got called inside `alloc::alloc::handle_alloc_error` (at RUSTLIB/alloc/src/alloc.rs:LL:CC)
note: which got called inside `miri_start`
--> tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
|
LL | handle_alloc_error(Layout::for_value(&0));

View file

@ -7,12 +7,11 @@ error: abnormal termination: the program aborted execution
LL | core::intrinsics::abort();
| ^^^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here
|
= note: BACKTRACE:
= note: inside `panic_handler` at tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC
= note: inside `alloc::alloc::__alloc_error_handler::__rdl_alloc_error_handler` at RUSTLIB/alloc/src/alloc.rs:LL:CC
= note: inside `alloc::alloc::handle_alloc_error::rt_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC
= note: inside `alloc::alloc::handle_alloc_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC
note: inside `miri_start`
= note: this is inside `panic_handler`
= note: which got called inside `alloc::alloc::__alloc_error_handler::__rdl_alloc_error_handler` (at RUSTLIB/alloc/src/alloc.rs:LL:CC)
= note: which got called inside `alloc::alloc::handle_alloc_error::rt_error` (at RUSTLIB/alloc/src/alloc.rs:LL:CC)
= note: which got called inside `alloc::alloc::handle_alloc_error` (at RUSTLIB/alloc/src/alloc.rs:LL:CC)
note: which got called inside `miri_start`
--> tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC
|
LL | handle_alloc_error(Layout::for_value(&0));

View file

@ -6,10 +6,9 @@ LL | FREE();
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `std::sys::alloc::PLATFORM::<impl std::alloc::GlobalAlloc for std::alloc::System>::dealloc` at RUSTLIB/std/src/sys/alloc/PLATFORM.rs:LL:CC
= note: inside `<std::alloc::System as std::alloc::Allocator>::deallocate` at RUSTLIB/std/src/alloc.rs:LL:CC
note: inside `main`
= note: this is inside `std::sys::alloc::PLATFORM::<impl std::alloc::GlobalAlloc for std::alloc::System>::dealloc`
= note: which got called inside `<std::alloc::System as std::alloc::Allocator>::deallocate` (at RUSTLIB/std/src/alloc.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/alloc/global_system_mixup.rs:LL:CC
|
LL | unsafe { System.deallocate(ptr, l) };

View file

@ -6,11 +6,10 @@ LL | self.1.deallocate(From::from(ptr.cast()), layout);
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `<std::boxed::Box<i32> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::ptr::drop_in_place::<std::boxed::Box<i32>> - shim(Some(std::boxed::Box<i32>))` at RUSTLIB/core/src/ptr/mod.rs:LL:CC
= note: inside `std::mem::drop::<std::boxed::Box<i32>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC
note: inside `main`
= note: this is inside `<std::boxed::Box<i32> as std::ops::Drop>::drop`
= note: which got called inside `std::ptr::drop_in_place::<std::boxed::Box<i32>> - shim(Some(std::boxed::Box<i32>))` (at RUSTLIB/core/src/ptr/mod.rs:LL:CC)
= note: which got called inside `std::mem::drop::<std::boxed::Box<i32>>` (at RUSTLIB/core/src/mem/mod.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/alloc/stack_free.rs:LL:CC
|
LL | drop(bad_box);

View file

@ -20,15 +20,18 @@ help: <TAG> was later invalidated at offsets [OFFSET] by a SharedReadOnly retag
|
LL | let _: Pin<&_> = f.as_ref(); // Or: `f.as_mut().into_ref()`.
| ^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside closure at tests/fail/async-shared-mutable.rs:LL:CC
= note: inside `<std::future::PollFn<{closure@tests/fail/async-shared-mutable.rs:LL:CC}> as std::future::Future>::poll` at RUSTLIB/core/src/future/poll_fn.rs:LL:CC
note: inside closure
note: error occurred inside closure
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | core::future::poll_fn(move |_| {
| ^^^^^^^^
= note: which got called inside `<std::future::PollFn<{closure@tests/fail/async-shared-mutable.rs:LL:CC}> as std::future::Future>::poll` (at RUSTLIB/core/src/future/poll_fn.rs:LL:CC)
note: which got called inside closure
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | .await
| ^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | assert_eq!(f.as_mut().poll(&mut cx), Poll::Pending);

View file

@ -28,15 +28,18 @@ help: the accessed tag <TAG> later transitioned to Frozen due to a reborrow (act
LL | let _: Pin<&_> = f.as_ref(); // Or: `f.as_mut().into_ref()`.
| ^^^^^^^^^^
= help: this transition corresponds to a loss of write permissions
= note: BACKTRACE (of the first span):
= note: inside closure at tests/fail/async-shared-mutable.rs:LL:CC
= note: inside `<std::future::PollFn<{closure@tests/fail/async-shared-mutable.rs:LL:CC}> as std::future::Future>::poll` at RUSTLIB/core/src/future/poll_fn.rs:LL:CC
note: inside closure
note: error occurred inside closure
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | core::future::poll_fn(move |_| {
| ^^^^^^^^
= note: which got called inside `<std::future::PollFn<{closure@tests/fail/async-shared-mutable.rs:LL:CC}> as std::future::Future>::poll` (at RUSTLIB/core/src/future/poll_fn.rs:LL:CC)
note: which got called inside closure
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | .await
| ^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | assert_eq!(f.as_mut().poll(&mut cx), Poll::Pending);

View file

@ -16,9 +16,12 @@ help: <TAG> is this argument
|
LL | fn safe(x: &mut i32, y: &mut i32) {
| ^
= note: BACKTRACE (of the first span):
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
note: inside `main`
note: error occurred inside `safe`
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
LL | fn safe(x: &mut i32, y: &mut i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
LL | safe_raw(xraw, xraw);

View file

@ -18,9 +18,12 @@ help: the accessed tag <TAG> later transitioned to Reserved (conflicted) due to
LL | fn safe(x: &mut i32, y: &mut i32) {
| ^
= help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span):
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
note: inside `main`
note: error occurred inside `safe`
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
LL | fn safe(x: &mut i32, y: &mut i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
LL | safe_raw(xraw, xraw);

View file

@ -16,9 +16,12 @@ help: <TAG> is this argument
|
LL | fn safe(x: &i32, y: &mut i32) {
| ^
= note: BACKTRACE (of the first span):
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
note: inside `main`
note: error occurred inside `safe`
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
LL | fn safe(x: &i32, y: &mut i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
LL | safe_raw(xshr, xraw);

View file

@ -18,9 +18,12 @@ help: the accessed tag <TAG> later transitioned to Reserved (conflicted) due to
LL | let _v = *x;
| ^^
= help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span):
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
note: inside `main`
note: error occurred inside `safe`
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
LL | fn safe(x: &i32, y: &mut i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
LL | safe_raw(xshr, xraw);

View file

@ -16,9 +16,12 @@ help: <TAG> was later invalidated at offsets [0x0..0x4] by a Unique function-ent
|
LL | safe_raw(xraw, xshr);
| ^^^^^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
note: inside `main`
note: error occurred inside `safe`
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
LL | fn safe(x: &mut i32, y: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
LL | safe_raw(xraw, xshr);

View file

@ -18,9 +18,12 @@ help: the accessed tag <TAG> later transitioned to Reserved (conflicted) due to
LL | fn safe(x: &mut i32, y: &i32) {
| ^
= help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span):
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
note: inside `main`
note: error occurred inside `safe`
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
LL | fn safe(x: &mut i32, y: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
LL | safe_raw(xraw, xshr);

View file

@ -16,9 +16,12 @@ help: <TAG> is this argument
|
LL | fn safe(x: &i32, y: &mut Cell<i32>) {
| ^
= note: BACKTRACE (of the first span):
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
note: inside `main`
note: error occurred inside `safe`
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
LL | fn safe(x: &i32, y: &mut Cell<i32>) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
LL | safe_raw(xshr, xraw as *mut _);

View file

@ -19,16 +19,19 @@ help: the protected tag <TAG> was created here, in the initial state Frozen
|
LL | fn safe(x: &i32, y: &mut Cell<i32>) {
| ^
= note: BACKTRACE (of the first span):
= note: inside `std::mem::replace::<i32>` at RUSTLIB/core/src/mem/mod.rs:LL:CC
= note: inside `std::cell::Cell::<i32>::replace` at RUSTLIB/core/src/cell.rs:LL:CC
= note: inside `std::cell::Cell::<i32>::set` at RUSTLIB/core/src/cell.rs:LL:CC
note: inside `safe`
note: error occurred inside `std::mem::replace::<i32>`
--> RUSTLIB/core/src/mem/mod.rs:LL:CC
|
LL | pub const fn replace<T>(dest: &mut T, src: T) -> T {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: which got called inside `std::cell::Cell::<i32>::replace` (at RUSTLIB/core/src/cell.rs:LL:CC)
= note: which got called inside `std::cell::Cell::<i32>::set` (at RUSTLIB/core/src/cell.rs:LL:CC)
note: which got called inside `safe`
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
LL | y.set(1);
| ^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
LL | safe_raw(xshr, xraw as *mut _);

View file

@ -16,14 +16,17 @@ help: <TAG> was later invalidated at offsets [0x0..0x4] by a write access
|
LL | *our = 5;
| ^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `unknown_code_2` at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
note: inside `demo_box_advanced_unique`
note: error occurred inside `unknown_code_2`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | fn unknown_code_2() {
| ^^^^^^^^^^^^^^^^^^^
note: which got called inside `demo_box_advanced_unique`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | unknown_code_2();
| ^^^^^^^^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | demo_box_advanced_unique(Box::new(0));

View file

@ -18,14 +18,17 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | *our = 5;
| ^^^^^^^^
= help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span):
= note: inside `unknown_code_2` at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
note: inside `demo_box_advanced_unique`
note: error occurred inside `unknown_code_2`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | fn unknown_code_2() {
| ^^^^^^^^^^^^^^^^^^^
note: which got called inside `demo_box_advanced_unique`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | unknown_code_2();
| ^^^^^^^^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | demo_box_advanced_unique(Box::new(0));

View file

@ -16,9 +16,12 @@ help: <TAG> is this argument
|
LL | unsafe fn test(mut x: Box<i32>, y: *const i32) -> i32 {
| ^^^^^
= note: BACKTRACE (of the first span):
= note: inside `test` at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
note: inside `main`
note: error occurred inside `test`
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
LL | unsafe fn test(mut x: Box<i32>, y: *const i32) -> i32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
LL | test(Box::from_raw(ptr), ptr);

View file

@ -25,9 +25,12 @@ help: the protected tag <TAG> later transitioned to Unique due to a child write
LL | *x = 5;
| ^^^^^^
= help: this transition corresponds to the first write to a 2-phase borrowed mutable reference
= note: BACKTRACE (of the first span):
= note: inside `test` at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
note: inside `main`
note: error occurred inside `test`
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
LL | unsafe fn test(mut x: Box<i32>, y: *const i32) -> i32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
LL | test(Box::from_raw(ptr), ptr);

View file

@ -22,9 +22,12 @@ help: <TAG> was later invalidated at offsets [0x0..0x10] by a Unique retag
|
LL | from_raw_parts_mut(ptr.offset(mid as isize), len - mid),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `safe::split_at_mut::<i32>` at tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC
note: inside `main`
note: error occurred inside `safe::split_at_mut::<i32>`
--> tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC
|
LL | pub fn split_at_mut<T>(self_: &mut [T], mid: usize) -> (&mut [T], &mut [T]) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC
|
LL | let (a, b) = safe::split_at_mut(&mut array, 0);

View file

@ -16,9 +16,12 @@ help: <TAG> is this argument
|
LL | fn foo(a: &mut u32, y: *mut u32) -> u32 {
| ^
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/illegal_write6.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
LL | fn foo(a: &mut u32, y: *mut u32) -> u32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
LL | foo(x, p);

View file

@ -25,9 +25,12 @@ help: the protected tag <TAG> later transitioned to Unique due to a child write
LL | *a = 1;
| ^^^^^^
= help: this transition corresponds to the first write to a 2-phase borrowed mutable reference
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/illegal_write6.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
LL | fn foo(a: &mut u32, y: *mut u32) -> u32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
LL | foo(x, p);

View file

@ -16,9 +16,12 @@ help: <TAG> is this argument
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^
= note: BACKTRACE (of the first span):
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
note: inside `main`
note: error occurred inside `inner`
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
LL | inner(xraw, xref);

View file

@ -19,9 +19,12 @@ help: the protected tag <TAG> was created here, in the initial state Frozen
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^
= note: BACKTRACE (of the first span):
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
note: inside `main`
note: error occurred inside `inner`
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
LL | inner(xraw, xref);

View file

@ -16,9 +16,12 @@ help: <TAG> is this argument
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^
= note: BACKTRACE (of the first span):
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
note: inside `main`
note: error occurred inside `inner`
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
LL | inner(ptr, &*ptr);

View file

@ -19,9 +19,12 @@ help: the protected tag <TAG> was created here, in the initial state Frozen
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^
= note: BACKTRACE (of the first span):
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
note: inside `main`
note: error occurred inside `inner`
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
LL | fn inner(x: *mut i32, _y: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
LL | inner(ptr, &*ptr);

View file

@ -11,10 +11,13 @@ help: ALLOC was allocated here:
|
LL | let ptr = Box::into_raw(Box::new(0u16));
| ^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `std::boxed::Box::<u32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::boxed::Box::<u32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main`
note: error occurred inside `std::boxed::Box::<u32>::from_raw_in`
--> RUSTLIB/alloc/src/boxed.rs:LL:CC
|
LL | pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: which got called inside `std::boxed::Box::<u32>::from_raw` (at RUSTLIB/alloc/src/boxed.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC
|
LL | drop(Box::from_raw(ptr as *mut u32));

View file

@ -11,10 +11,13 @@ help: ALLOC was allocated here:
|
LL | let ptr = Box::into_raw(Box::new(0u16));
| ^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `std::boxed::Box::<u32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::boxed::Box::<u32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main`
note: error occurred inside `std::boxed::Box::<u32>::from_raw_in`
--> RUSTLIB/alloc/src/boxed.rs:LL:CC
|
LL | pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: which got called inside `std::boxed::Box::<u32>::from_raw` (at RUSTLIB/alloc/src/boxed.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC
|
LL | drop(Box::from_raw(ptr as *mut u32));

View file

@ -6,10 +6,9 @@ LL | Box(unsafe { Unique::new_unchecked(raw) }, alloc)
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main`
= note: this is inside `std::boxed::Box::<i32>::from_raw_in`
= note: which got called inside `std::boxed::Box::<i32>::from_raw` (at RUSTLIB/alloc/src/boxed.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC
|
LL | drop(Box::from_raw(ptr.as_ptr()));

View file

@ -6,10 +6,9 @@ LL | Box(unsafe { Unique::new_unchecked(raw) }, alloc)
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main`
= note: this is inside `std::boxed::Box::<i32>::from_raw_in`
= note: which got called inside `std::boxed::Box::<i32>::from_raw` (at RUSTLIB/alloc/src/boxed.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC
|
LL | drop(Box::from_raw(ptr.as_ptr()));

View file

@ -16,14 +16,17 @@ help: <TAG> was later invalidated at offsets [0x0..0x4] by a write access
|
LL | *our = 5;
| ^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `unknown_code_2` at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
note: inside `demo_mut_advanced_unique`
note: error occurred inside `unknown_code_2`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | fn unknown_code_2() {
| ^^^^^^^^^^^^^^^^^^^
note: which got called inside `demo_mut_advanced_unique`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | unknown_code_2();
| ^^^^^^^^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | demo_mut_advanced_unique(&mut 0);

View file

@ -18,14 +18,17 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | *our = 5;
| ^^^^^^^^
= help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span):
= note: inside `unknown_code_2` at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
note: inside `demo_mut_advanced_unique`
note: error occurred inside `unknown_code_2`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | fn unknown_code_2() {
| ^^^^^^^^^^^^^^^^^^^
note: which got called inside `demo_mut_advanced_unique`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | unknown_code_2();
| ^^^^^^^^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | demo_mut_advanced_unique(&mut 0);

View file

@ -16,20 +16,23 @@ help: <TAG> is this argument
|
LL | fn dealloc_while_running(_n: Newtype<'_>, dealloc: impl FnOnce()) {
| ^^
= note: BACKTRACE (of the first span):
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside closure
note: error occurred inside `std::boxed::Box::<i32>::from_raw_in`
--> RUSTLIB/alloc/src/boxed.rs:LL:CC
|
LL | pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: which got called inside `std::boxed::Box::<i32>::from_raw` (at RUSTLIB/alloc/src/boxed.rs:LL:CC)
note: which got called inside closure
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC}>`
note: which got called inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC}>`
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
LL | dealloc();
| ^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
LL | / dealloc_while_running(

View file

@ -25,21 +25,24 @@ help: the protected tag <TAG> later transitioned to Reserved (conflicted) due to
LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^
= help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span):
= note: inside `<std::boxed::Box<i32> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::ptr::drop_in_place::<std::boxed::Box<i32>> - shim(Some(std::boxed::Box<i32>))` at RUSTLIB/core/src/ptr/mod.rs:LL:CC
= note: inside `std::mem::drop::<std::boxed::Box<i32>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC
note: inside closure
note: error occurred inside `<std::boxed::Box<i32> as std::ops::Drop>::drop`
--> RUSTLIB/alloc/src/boxed.rs:LL:CC
|
LL | fn drop(&mut self) {
| ^^^^^^^^^^^^^^^^^^
= note: which got called inside `std::ptr::drop_in_place::<std::boxed::Box<i32>> - shim(Some(std::boxed::Box<i32>))` (at RUSTLIB/core/src/ptr/mod.rs:LL:CC)
= note: which got called inside `std::mem::drop::<std::boxed::Box<i32>>` (at RUSTLIB/core/src/mem/mod.rs:LL:CC)
note: which got called inside closure
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^^^^^^^
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC}>`
note: which got called inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC}>`
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
LL | dealloc();
| ^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
LL | / dealloc_while_running(

View file

@ -16,20 +16,23 @@ help: <TAG> is this argument
|
LL | fn dealloc_while_running(_n: Newtype<'_>, dealloc: impl FnOnce()) {
| ^^
= note: BACKTRACE (of the first span):
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside closure
note: error occurred inside `std::boxed::Box::<i32>::from_raw_in`
--> RUSTLIB/alloc/src/boxed.rs:LL:CC
|
LL | pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: which got called inside `std::boxed::Box::<i32>::from_raw` (at RUSTLIB/alloc/src/boxed.rs:LL:CC)
note: which got called inside closure
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_retagging.rs:LL:CC}>`
note: which got called inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_retagging.rs:LL:CC}>`
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
LL | dealloc();
| ^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
LL | / dealloc_while_running(

View file

@ -25,21 +25,24 @@ help: the protected tag <TAG> later transitioned to Reserved (conflicted) due to
LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^
= help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span):
= note: inside `<std::boxed::Box<i32> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::ptr::drop_in_place::<std::boxed::Box<i32>> - shim(Some(std::boxed::Box<i32>))` at RUSTLIB/core/src/ptr/mod.rs:LL:CC
= note: inside `std::mem::drop::<std::boxed::Box<i32>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC
note: inside closure
note: error occurred inside `<std::boxed::Box<i32> as std::ops::Drop>::drop`
--> RUSTLIB/alloc/src/boxed.rs:LL:CC
|
LL | fn drop(&mut self) {
| ^^^^^^^^^^^^^^^^^^
= note: which got called inside `std::ptr::drop_in_place::<std::boxed::Box<i32>> - shim(Some(std::boxed::Box<i32>))` (at RUSTLIB/core/src/ptr/mod.rs:LL:CC)
= note: which got called inside `std::mem::drop::<std::boxed::Box<i32>>` (at RUSTLIB/core/src/mem/mod.rs:LL:CC)
note: which got called inside closure
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^^^^^^^
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_retagging.rs:LL:CC}>`
note: which got called inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_retagging.rs:LL:CC}>`
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
LL | dealloc();
| ^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
LL | / dealloc_while_running(

View file

@ -14,9 +14,12 @@ LL | let _r = &mut *p;
= help: therefore from the perspective of data races, a retag has the same implications as a read or write
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE (of the first span) on thread `unnamed-ID`:
= note: inside `thread_2` at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
note: inside closure
note: error occurred on thread `unnamed-ID`, inside `thread_2`
--> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
LL | fn thread_2(p: SendPtr) {
| ^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside closure
--> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
LL | let t2 = std::thread::spawn(move || thread_2(p));

View file

@ -14,9 +14,12 @@ LL | let _r = &mut *p;
= help: therefore from the perspective of data races, a retag has the same implications as a read or write
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE (of the first span) on thread `unnamed-ID`:
= note: inside `thread_2` at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
note: inside closure
note: error occurred on thread `unnamed-ID`, inside `thread_2`
--> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
LL | fn thread_2(p: SendPtr) {
| ^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside closure
--> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
LL | let t2 = std::thread::spawn(move || thread_2(p));

View file

@ -16,9 +16,12 @@ help: <TAG> was later invalidated at offsets [0x4..0x8] by a write access
|
LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
LL | fn foo(x: &mut (i32, i32)) -> &i32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
LL | foo(&mut (1, 2));

View file

@ -18,9 +18,12 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^
= help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
LL | fn foo(x: &mut (i32, i32)) -> &i32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
LL | foo(&mut (1, 2));

View file

@ -19,9 +19,12 @@ help: <TAG> was later invalidated at offsets [0x4..0x8] by a write access
|
LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
LL | fn foo(x: &mut (i32, i32)) -> Option<&i32> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
LL | match foo(&mut (1, 2)) {

View file

@ -18,9 +18,12 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^
= help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
LL | fn foo(x: &mut (i32, i32)) -> Option<&i32> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
LL | match foo(&mut (1, 2)) {

View file

@ -19,9 +19,12 @@ help: <TAG> was later invalidated at offsets [0x4..0x8] by a write access
|
LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
LL | fn foo(x: &mut (i32, i32)) -> (&i32,) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
LL | foo(&mut (1, 2)).0;

View file

@ -18,9 +18,12 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^
= help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span):
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
note: inside `main`
note: error occurred inside `foo`
--> tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
LL | fn foo(x: &mut (i32, i32)) -> (&i32,) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
LL | foo(&mut (1, 2)).0;

View file

@ -11,14 +11,17 @@ help: <TAG> was created by a SharedReadOnly retag at offsets [0x0..0x4]
|
LL | *(x as *const i32 as *mut i32) = 7;
| ^
= note: BACKTRACE (of the first span):
= note: inside `unknown_code` at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
note: inside `foo`
note: error occurred inside `unknown_code`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | fn unknown_code(x: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `foo`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | unknown_code(&*x);
| ^^^^^^^^^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | println!("{}", foo(&mut 0));

View file

@ -12,14 +12,17 @@ help: the accessed tag <TAG> was created here, in the initial state Frozen
|
LL | fn unknown_code(x: &i32) {
| ^
= note: BACKTRACE (of the first span):
= note: inside `unknown_code` at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
note: inside `foo`
note: error occurred inside `unknown_code`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | fn unknown_code(x: &i32) {
| ^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `foo`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | unknown_code(&*x);
| ^^^^^^^^^^^^^^^^^
note: inside `main`
note: which got called inside `main`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | println!("{}", foo(&mut 0));

View file

@ -16,9 +16,12 @@ help: <TAG> was later invalidated at offsets [0x0..0x1] by a Unique retag
|
LL | let res = helper(val, ptr);
| ^^^
= note: BACKTRACE (of the first span):
= note: inside `helper` at tests/fail/box-cell-alias.rs:LL:CC
note: inside `main`
note: error occurred inside `helper`
--> tests/fail/box-cell-alias.rs:LL:CC
|
LL | fn helper(val: Box<Cell<u8>>, ptr: *const Cell<u8>) -> u8 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: which got called inside `main`
--> tests/fail/box-cell-alias.rs:LL:CC
|
LL | let res = helper(val, ptr);

View file

@ -6,9 +6,8 @@ LL | match r {
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside closure at tests/fail/closures/uninhabited-variant.rs:LL:CC
note: inside `main`
= note: this is inside closure
note: which got called inside `main`
--> tests/fail/closures/uninhabited-variant.rs:LL:CC
|
LL | f();

View file

@ -4,7 +4,7 @@
//@normalize-stderr-test: "\| +\^+" -> "| ^"
//@normalize-stderr-test: "\n *= note:.*" -> ""
// On macOS we use chekced pthread mutexes which changes the error
//@normalize-stderr-test: "this thread got stuck here" -> "thread `main` got stuck here"
//@normalize-stderr-test: "a thread got stuck here" -> "thread `main` got stuck here"
//@normalize-stderr-test: "a thread deadlocked" -> "the evaluated program deadlocked"
use std::mem;
use std::sync::Mutex;

View file

@ -2,9 +2,9 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/$FILE:LL:CC
|
LL | $CODE
| ^ thread `main` got stuck here
| ^ thread got stuck here
|
note: inside `main`
note: which got called inside `main`
--> tests/fail/concurrency/mutex-leak-move-deadlock.rs:LL:CC
|
LL | $CODE

View file

@ -16,15 +16,18 @@ help: ALLOC was deallocated here:
|
LL | }; // *deallocate* coroutine_iterator
| ^
= note: BACKTRACE (of the first span):
= note: inside closure at tests/fail/coroutine-pinned-moved.rs:LL:CC
note: inside `<CoroutineIteratorAdapter<{static coroutine@tests/fail/coroutine-pinned-moved.rs:LL:CC}> as std::iter::Iterator>::next`
note: error occurred inside closure
--> tests/fail/coroutine-pinned-moved.rs:LL:CC
|
LL | static move || {
| ^^^^^^^^^^^^^^
note: which got called inside `<CoroutineIteratorAdapter<{static coroutine@tests/fail/coroutine-pinned-moved.rs:LL:CC}> as std::iter::Iterator>::next`
--> tests/fail/coroutine-pinned-moved.rs:LL:CC
|
LL | match me.resume(()) {
| ^^^^^^^^^^^^^
= note: inside `std::boxed::iter::<impl std::iter::Iterator for std::boxed::Box<CoroutineIteratorAdapter<{static coroutine@tests/fail/coroutine-pinned-moved.rs:LL:CC}>>>::next` at RUSTLIB/alloc/src/boxed/iter.rs:LL:CC
note: inside `main`
= note: which got called inside `std::boxed::iter::<impl std::iter::Iterator for std::boxed::Box<CoroutineIteratorAdapter<{static coroutine@tests/fail/coroutine-pinned-moved.rs:LL:CC}>>>::next` (at RUSTLIB/alloc/src/boxed/iter.rs:LL:CC)
note: which got called inside `main`
--> tests/fail/coroutine-pinned-moved.rs:LL:CC
|
LL | coroutine_iterator_2.next(); // and use moved value

View file

@ -6,9 +6,8 @@ LL | unsafe { &(*x).0 as *const i32 }
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `via_ref` at tests/fail/dangling_pointers/dangling_pointer_to_raw_pointer.rs:LL:CC
note: inside `main`
= note: this is inside `via_ref`
note: which got called inside `main`
--> tests/fail/dangling_pointers/dangling_pointer_to_raw_pointer.rs:LL:CC
|
LL | via_ref(ptr); // this is not

View file

@ -6,9 +6,8 @@ LL | let _ref = unsafe { &mut *(LEAK as *mut i32) };
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE:
= note: inside `evil` at tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC
note: inside `main`
= note: this is inside `evil`
note: which got called inside `main`
--> tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC
|
LL | evil();

View file

@ -11,6 +11,7 @@ LL | pointer.store(Box::into_raw(Box::new_uninit()), Ordering::Relax
| ^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | .store(Box::into_raw(Box::<usize>::new_uninit()) as *mut us
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | *(c.0 as *mut usize) = 32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | atomic_ref.load(Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | atomic_ref.store(32, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | let _val = *(c.0 as *mut usize);
| ^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | *(c.0 as *mut usize) = 32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | atomic_ref.store(64, Ordering::SeqCst);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: this is on thread `unnamed-ID`
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

Some files were not shown because too many files have changed in this diff Show more