adjust how backtraces get rendered; always show thread name when there are multiple threads
This commit is contained in:
parent
d1c8e9342c
commit
8cd16cd18b
235 changed files with 1000 additions and 768 deletions
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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>()) });
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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) };
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 _);
|
||||
|
|
|
|||
|
|
@ -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 _);
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue