Auto merge of #150565 - RalfJung:miri, r=RalfJung
miri subtree update
Subtree update of `miri` to cb3bfe8ef4.
Created using https://github.com/rust-lang/josh-sync.
r? `@ghost`
This commit is contained in:
commit
fcd630976c
257 changed files with 2127 additions and 1770 deletions
|
|
@ -152,7 +152,7 @@ case $HOST_TARGET in
|
|||
# Partially supported targets (tier 2)
|
||||
BASIC="empty_main integer heap_alloc libc-mem vec string btreemap" # ensures we have the basics: pre-main code, system allocator
|
||||
UNIX="hello panic/panic panic/unwind concurrency/simple atomic libc-mem libc-misc libc-random env num_cpus" # the things that are very similar across all Unixes, and hence easily supported there
|
||||
TEST_TARGET=aarch64-linux-android run_tests_minimal $BASIC $UNIX time hashmap random thread sync concurrency epoll eventfd
|
||||
TEST_TARGET=aarch64-linux-android run_tests_minimal $BASIC $UNIX time hashmap random thread sync concurrency epoll eventfd prctl
|
||||
TEST_TARGET=wasm32-unknown-unknown run_tests_minimal no_std empty_main wasm # this target doesn't really have std
|
||||
TEST_TARGET=thumbv7em-none-eabihf run_tests_minimal no_std
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
@ -558,42 +555,30 @@ fn report_msg<'tcx>(
|
|||
thread: Option<ThreadId>,
|
||||
machine: &MiriMachine<'tcx>,
|
||||
) {
|
||||
let span = match stacktrace.first() {
|
||||
Some(fi) => fi.span,
|
||||
None =>
|
||||
match thread {
|
||||
Some(thread_id) => machine.threads.thread_ref(thread_id).origin_span,
|
||||
None => DUMMY_SP,
|
||||
},
|
||||
};
|
||||
let sess = machine.tcx.sess;
|
||||
let origin_span = thread.map(|t| machine.threads.thread_ref(t).origin_span).unwrap_or(DUMMY_SP);
|
||||
let span = stacktrace.first().map(|fi| fi.span).unwrap_or(origin_span);
|
||||
// The only time we do not have an origin span is for `main`, and there we check the signature
|
||||
// upfront. So we should always have a span here.
|
||||
assert!(!span.is_dummy());
|
||||
|
||||
let tcx = machine.tcx;
|
||||
let level = match diag_level {
|
||||
DiagLevel::Error => Level::Error,
|
||||
DiagLevel::Warning => Level::Warning,
|
||||
DiagLevel::Note => Level::Note,
|
||||
};
|
||||
let mut err = Diag::<()>::new(sess.dcx(), level, title);
|
||||
let mut err = Diag::<()>::new(tcx.sess.dcx(), level, title);
|
||||
err.span(span);
|
||||
|
||||
// Show main message.
|
||||
if !span.is_dummy() {
|
||||
for line in span_msg {
|
||||
err.span_label(span, line);
|
||||
}
|
||||
} else {
|
||||
// Make sure we show the message even when it is a dummy span.
|
||||
for line in span_msg {
|
||||
err.note(line);
|
||||
}
|
||||
err.note("(no span available)");
|
||||
for line in span_msg {
|
||||
err.span_label(span, line);
|
||||
}
|
||||
|
||||
// Show note and help messages.
|
||||
let mut extra_span = false;
|
||||
for (span_data, note) in notes {
|
||||
if let Some(span_data) = span_data {
|
||||
err.span_note(span_data.span(), note);
|
||||
extra_span = true;
|
||||
} else {
|
||||
err.note(note);
|
||||
}
|
||||
|
|
@ -601,43 +586,44 @@ fn report_msg<'tcx>(
|
|||
for (span_data, help) in helps {
|
||||
if let Some(span_data) = span_data {
|
||||
err.span_help(span_data.span(), help);
|
||||
extra_span = true;
|
||||
} else {
|
||||
err.help(help);
|
||||
}
|
||||
}
|
||||
// Only print thread name if there are multiple threads.
|
||||
if let Some(thread) = thread
|
||||
&& machine.threads.get_total_thread_count() > 1
|
||||
{
|
||||
err.note(format!(
|
||||
"this is on thread `{}`",
|
||||
machine.threads.get_thread_display_name(thread)
|
||||
));
|
||||
}
|
||||
|
||||
// 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(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();
|
||||
};
|
||||
}
|
||||
write!(backtrace_title, ":").unwrap();
|
||||
err.note(backtrace_title);
|
||||
for (idx, frame_info) in stacktrace.iter().enumerate() {
|
||||
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));
|
||||
} else {
|
||||
let sm = sess.source_map();
|
||||
if stacktrace.len() > 0 {
|
||||
// Skip it if we'd only shpw the span we have already shown
|
||||
if stacktrace.len() > 1 {
|
||||
let sm = tcx.sess.source_map();
|
||||
let mut out = format!("stack backtrace:");
|
||||
for (idx, frame_info) in stacktrace.iter().enumerate() {
|
||||
let span = sm.span_to_diagnostic_string(frame_info.span);
|
||||
err.note(format!("{frame_info} at {span}"));
|
||||
write!(out, "\n{idx}: {}", frame_info.instance).unwrap();
|
||||
write!(out, "\n at {span}").unwrap();
|
||||
}
|
||||
err.note(out);
|
||||
}
|
||||
} 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()
|
||||
));
|
||||
// For TLS dtors and non-main threads, show the "origin"
|
||||
if !origin_span.is_dummy() {
|
||||
let what = if stacktrace.len() > 1 {
|
||||
"the last function in that backtrace"
|
||||
} else {
|
||||
"the current function"
|
||||
};
|
||||
err.span_note(origin_span, format!("{what} got called indirectly due to this code"));
|
||||
}
|
||||
} 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");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
//@only-target: darwin
|
||||
//@compile-flags: -Zmiri-fixed-schedule
|
||||
#![feature(sync_unsafe_cell)]
|
||||
|
||||
use std::cell::SyncUnsafeCell;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,15 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/apple_os_unfair_lock_move_with_queue.rs:LL:CC
|
||||
|
|
||||
LL | / ... s.spawn(|| {
|
||||
LL | | ... let atomic_ref = unsafe { &*lock.get().cast::<AtomicU32>() };
|
||||
LL | | ... let _val = atomic_ref.load(Ordering::Relaxed);
|
||||
LL | | ... });
|
||||
| |________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
||||
|
|
||||
LL | check()
|
||||
| ^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: check
|
||||
at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
||||
|
|
||||
LL | check()
|
||||
| ^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: check
|
||||
at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ LL | libc::pthread_create(&mut native, ptr::null(), thread_start, pt
|
|||
|
|
||||
= 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: this error occurred while pushing a call frame onto an empty stack
|
||||
= 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 | libc::pthread_create(&mut native, ptr::null(), thread_start, pt
|
|||
|
|
||||
= 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: this error occurred while pushing a call frame onto an empty stack
|
||||
= 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 | 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,17 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_join_main.rs:LL:CC
|
||||
|
|
||||
LL | let handle = thread::spawn(move || {
|
||||
| __________________^
|
||||
LL | | unsafe {
|
||||
LL | | assert_eq!(libc::pthread_join(thread_id, ptr::null_mut()), 0);
|
||||
LL | | }
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,15 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_join_multiple.rs:LL:CC
|
||||
|
|
||||
LL | ... let handle = thread::spawn(move || {
|
||||
| ____________________^
|
||||
LL | | ... assert_eq!(libc::pthread_join(native_copy, ptr::null_mut()), 0);
|
||||
LL | | ... });
|
||||
| |________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,18 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_join_self.rs:LL:CC
|
||||
|
|
||||
LL | let handle = thread::spawn(|| {
|
||||
| __________________^
|
||||
LL | | unsafe {
|
||||
LL | | let native: libc::pthread_t = libc::pthread_self();
|
||||
LL | | assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0);
|
||||
LL | | }
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -2,26 +2,33 @@ 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`
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_deadlock.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(move || {
|
||||
LL | | assert_eq!(libc::pthread_mutex_lock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | })
|
||||
LL | | .join()
|
||||
| |_______________^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/concurrency/libc_pthread_mutex_deadlock.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_deadlock.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(move || {
|
||||
LL | | assert_eq!(libc::pthread_mutex_lock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | })
|
||||
| |__________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,15 +6,25 @@ 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`
|
||||
= note: stack backtrace:
|
||||
0: <std::boxed::Box<Mutex> as std::ops::Drop>::drop
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::ptr::drop_in_place))
|
||||
at RUSTLIB/core/src/ptr/mod.rs:LL:CC
|
||||
2: std::mem::drop
|
||||
at RUSTLIB/core/src/mem/mod.rs:LL:CC
|
||||
3: main::{closure#0}::{closure#2}
|
||||
at tests/fail-dep/concurrency/libc_pthread_mutex_free_while_queued.rs:LL:CC
|
||||
note: the last function in that backtrace got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_free_while_queued.rs:LL:CC
|
||||
|
|
||||
LL | drop(unsafe { Box::from_raw(m.get().cast::<Mutex>()) });
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
LL | / s.spawn(|| {
|
||||
LL | | // Ensure we happen-after the initialization write.
|
||||
LL | | assert!(initialized.load(Ordering::Acquire));
|
||||
... |
|
||||
LL | | });
|
||||
| |__________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
||||
|
|
||||
LL | check();
|
||||
| ^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: check
|
||||
at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
||||
|
|
||||
LL | check();
|
||||
| ^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: check
|
||||
at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -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,15 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_read_while_queued.rs:LL:CC
|
||||
|
|
||||
LL | / ... s.spawn(|| {
|
||||
LL | | ... let atomic_ref = unsafe { &*m.get().byte_add(OFFSET).cast::<AtomicU32>() };
|
||||
LL | | ... let _val = atomic_ref.load(Ordering::Relaxed);
|
||||
LL | | ... });
|
||||
| |________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,15 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_write_while_queued.rs:LL:CC
|
||||
|
|
||||
LL | / s.spawn(|| {
|
||||
LL | | let atomic_ref = unsafe { &*m.get().byte_add(OFFSET).cast::<AtomicU32>() };
|
||||
LL | | atomic_ref.store(0, Ordering::Relaxed);
|
||||
LL | | });
|
||||
| |__________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,14 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_mutex_wrong_owner.rs:LL:CC
|
||||
|
|
||||
LL | / ... thread::spawn(move || {
|
||||
LL | | ... assert_eq!(libc::pthread_mutex_unlock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | ... })
|
||||
| |________^
|
||||
|
||||
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,14 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_rwlock_read_wrong_owner.rs:LL:CC
|
||||
|
|
||||
LL | / ... thread::spawn(move || {
|
||||
LL | | ... assert_eq!(libc::pthread_rwlock_unlock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | ... })
|
||||
| |________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -2,26 +2,33 @@ 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`
|
||||
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_read_deadlock.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(move || {
|
||||
LL | | assert_eq!(libc::pthread_rwlock_wrlock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | })
|
||||
LL | | .join()
|
||||
| |_______________^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/concurrency/libc_pthread_rwlock_write_read_deadlock.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_read_deadlock.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(move || {
|
||||
LL | | assert_eq!(libc::pthread_rwlock_wrlock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | })
|
||||
| |__________^
|
||||
|
||||
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,26 +2,33 @@ 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`
|
||||
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_write_deadlock.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(move || {
|
||||
LL | | assert_eq!(libc::pthread_rwlock_wrlock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | })
|
||||
LL | | .join()
|
||||
| |_______________^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/concurrency/libc_pthread_rwlock_write_write_deadlock.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_write_deadlock.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(move || {
|
||||
LL | | assert_eq!(libc::pthread_rwlock_wrlock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | })
|
||||
| |__________^
|
||||
|
||||
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,14 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/libc_pthread_rwlock_write_wrong_owner.rs:LL:CC
|
||||
|
|
||||
LL | / ... thread::spawn(move || {
|
||||
LL | | ... assert_eq!(libc::pthread_rwlock_unlock(lock_copy.0.get() as *mut _), 0);
|
||||
LL | | ... })
|
||||
| |________^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,15 +6,16 @@ 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`
|
||||
--> tests/fail-dep/concurrency/windows_join_detached.rs:LL:CC
|
||||
|
|
||||
LL | thread.join().unwrap();
|
||||
| ^^^^^^^^^^^^^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/concurrency/windows_join_detached.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -2,28 +2,35 @@ 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`
|
||||
--> tests/fail-dep/concurrency/windows_join_main.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(|| {
|
||||
LL | | unsafe {
|
||||
LL | | assert_eq!(WaitForSingleObject(MAIN_THREAD, INFINITE), WAIT_OBJECT_0);
|
||||
... |
|
||||
LL | | .join()
|
||||
| |___________^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/concurrency/windows_join_main.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/windows_join_main.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(|| {
|
||||
LL | | unsafe {
|
||||
LL | | assert_eq!(WaitForSingleObject(MAIN_THREAD, INFINITE), WAIT_OBJECT_0);
|
||||
LL | | }
|
||||
LL | | })
|
||||
| |______^
|
||||
= 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,27 @@ 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`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/concurrency/windows_join_self.rs:LL:CC
|
||||
|
||||
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 got stuck here
|
||||
|
|
||||
= note: this is on thread `unnamed-ID`
|
||||
note: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/concurrency/windows_join_self.rs:LL:CC
|
||||
|
|
||||
LL | / thread::spawn(|| {
|
||||
|
|
@ -17,14 +31,7 @@ LL | | let native = GetCurrentThread();
|
|||
LL | | assert_eq!(WaitForSingleObject(native, INFINITE), WAIT_OBJECT_0);
|
||||
LL | | }
|
||||
LL | | })
|
||||
LL | | .join()
|
||||
| |___________^
|
||||
|
||||
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
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,17 @@ 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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/libc/env-set_var-data-race.rs:LL:CC
|
||||
|
|
||||
LL | let t = thread::spawn(|| unsafe {
|
||||
| _____________^
|
||||
LL | | // Access the environment in another thread without taking the env lock.
|
||||
LL | | // This represents some C code that queries the environment.
|
||||
LL | | libc::getenv(b"TZ/0".as_ptr().cast());
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -2,23 +2,36 @@ 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`
|
||||
--> tests/fail-dep/libc/eventfd_block_read_twice.rs:LL:CC
|
||||
|
|
||||
LL | thread2.join().unwrap();
|
||||
| ^^^^^^^^^^^^^^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/libc/eventfd_block_read_twice.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/libc/eventfd_block_read_twice.rs:LL:CC
|
||||
|
|
||||
LL | let thread2 = thread::spawn(move || {
|
||||
| ___________________^
|
||||
LL | | let mut buf: [u8; 8] = [0; 8];
|
||||
... |
|
||||
LL | | assert_eq!(counter, 1_u64);
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -2,23 +2,38 @@ 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`
|
||||
--> tests/fail-dep/libc/eventfd_block_write_twice.rs:LL:CC
|
||||
|
|
||||
LL | thread2.join().unwrap();
|
||||
| ^^^^^^^^^^^^^^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/libc/eventfd_block_write_twice.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/libc/eventfd_block_write_twice.rs:LL:CC
|
||||
|
|
||||
LL | let thread2 = thread::spawn(move || {
|
||||
| ___________________^
|
||||
LL | | let sized_8_data = (u64::MAX - 1).to_ne_bytes();
|
||||
LL | | // Write u64::MAX - 1, so that all subsequent writes will block.
|
||||
LL | | let res: i64 = unsafe {
|
||||
... |
|
||||
LL | | assert_eq!(res, 8);
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
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,13 +6,11 @@ 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`
|
||||
--> tests/fail-dep/libc/fs/mkstemp_immutable_arg.rs:LL:CC
|
||||
|
|
||||
LL | test_mkstemp_immutable_arg();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: test_mkstemp_immutable_arg
|
||||
at tests/fail-dep/libc/fs/mkstemp_immutable_arg.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail-dep/libc/fs/mkstemp_immutable_arg.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail-dep/libc/fs/unix_open_missing_required_mode.rs:LL:CC
|
||||
|
|
||||
LL | test_file_open_missing_needed_mode();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: test_file_open_missing_needed_mode
|
||||
at tests/fail-dep/libc/fs/unix_open_missing_required_mode.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail-dep/libc/fs/unix_open_missing_required_mode.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -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,23 +2,35 @@ 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`
|
||||
--> tests/fail-dep/libc/libc_epoll_block_two_thread.rs:LL:CC
|
||||
|
|
||||
LL | thread2.join().unwrap();
|
||||
| ^^^^^^^^^^^^^^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/libc/libc_epoll_block_two_thread.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/libc/libc_epoll_block_two_thread.rs:LL:CC
|
||||
|
|
||||
LL | let thread2 = thread::spawn(move || {
|
||||
| ___________________^
|
||||
LL | | check_epoll_wait::<TAG>(epfd, &expected, -1);
|
||||
LL | |
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,6 @@
|
|||
fn main() {
|
||||
let mut buf = vec![0u8; 15];
|
||||
unsafe {
|
||||
libc::prctl(libc::PR_GET_NAME, buf.as_mut_ptr().cast::<libc::c_char>()); //~ ERROR: memory access failed: expected a pointer to 16 bytes of memory, but got alloc952 which is only 15 bytes from the end of the allocation
|
||||
libc::prctl(libc::PR_GET_NAME, buf.as_mut_ptr().cast::<libc::c_char>()); //~ ERROR: memory access failed
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,18 +1,16 @@
|
|||
error: Undefined Behavior: memory access failed: expected a pointer to 16 bytes of memory, but got ALLOC which is only 15 bytes from the end of the allocation
|
||||
--> tests/fail-dep/libc/prctl-threadname.rs:LL:CC
|
||||
error: Undefined Behavior: memory access failed: attempting to access 16 bytes, but got ALLOC which is only 15 bytes from the end of the allocation
|
||||
--> tests/fail-dep/libc/prctl-get-name-buffer-too-small.rs:LL:CC
|
||||
|
|
||||
LL | libc::prctl(libc::PR_GET_NAME, buf.as_mut_ptr().cast::<libc::c_char>());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ memory access failed: expected a pointer to 16 bytes of memory, but got ALLOC which is only 15 bytes from the end of the allocation
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Undefined Behavior occurred here
|
||||
|
|
||||
= 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
|
||||
help: ALLOC was allocated here:
|
||||
--> tests/fail-dep/libc/prctl-threadname.rs:LL:CC
|
||||
--> tests/fail-dep/libc/prctl-get-name-buffer-too-small.rs:LL:CC
|
||||
|
|
||||
LL | let mut buf = vec![0u8; 15];
|
||||
| ^^^^^^^^^^^^^
|
||||
= note: BACKTRACE (of the first span):
|
||||
= note: inside `main` at tests/fail-dep/libc/prctl-threadname.rs:LL:CC
|
||||
= note: this error originates in the macro `vec` (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,23 +2,38 @@ 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`
|
||||
--> tests/fail-dep/libc/socketpair-close-while-blocked.rs:LL:CC
|
||||
|
|
||||
LL | thread1.join().unwrap();
|
||||
| ^^^^^^^^^^^^^^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/libc/socketpair-close-while-blocked.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/libc/socketpair-close-while-blocked.rs:LL:CC
|
||||
|
|
||||
LL | let thread1 = thread::spawn(move || {
|
||||
| ___________________^
|
||||
LL | | let mut buf: [u8; 1] = [0; 1];
|
||||
LL | | let _res: i32 = unsafe {
|
||||
LL | | libc::read(fds[1], buf.as_mut_ptr().cast(), buf.len() as libc::size_t)
|
||||
... |
|
||||
LL | | };
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
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,23 +2,38 @@ 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`
|
||||
--> tests/fail-dep/libc/socketpair_block_read_twice.rs:LL:CC
|
||||
|
|
||||
LL | thread2.join().unwrap();
|
||||
| ^^^^^^^^^^^^^^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/libc/socketpair_block_read_twice.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/libc/socketpair_block_read_twice.rs:LL:CC
|
||||
|
|
||||
LL | let thread2 = thread::spawn(move || {
|
||||
| ___________________^
|
||||
LL | | // Let this thread block on read.
|
||||
LL | | let mut buf: [u8; 1] = [0; 1];
|
||||
LL | | let res = unsafe {
|
||||
... |
|
||||
LL | | assert_eq!(&buf, "a".as_bytes());
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -2,23 +2,38 @@ 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`
|
||||
--> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC
|
||||
|
|
||||
LL | thread2.join().unwrap();
|
||||
| ^^^^^^^^^^^^^^
|
||||
= note: this is on thread `main`
|
||||
= note: stack backtrace:
|
||||
0: std::sys::thread::PLATFORM::Thread::join
|
||||
at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
|
||||
1: std::thread::lifecycle::JoinInner::join
|
||||
at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
|
||||
2: std::thread::JoinHandle::join
|
||||
at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC
|
||||
|
||||
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: the current function got called indirectly due to this code
|
||||
--> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC
|
||||
|
|
||||
LL | let thread2 = thread::spawn(move || {
|
||||
| ___________________^
|
||||
LL | | let data = "a".as_bytes();
|
||||
LL | | // The write below will be blocked because the buffer is already full.
|
||||
LL | | let res = unsafe { libc::write(fds[0], data.as_ptr() as *const libc::c_void, data.len()) };
|
||||
LL | |
|
||||
LL | | assert_eq!(res, data.len().cast_signed());
|
||||
LL | | });
|
||||
| |______^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
error: deadlock: the evaluated program deadlocked
|
||||
--> tests/fail-dep/libc/socketpair_read_blocking.rs:LL:CC
|
||||
|
|
||||
LL | let _res = unsafe { libc::read(fds[1], buf.as_mut_ptr().cast(), buf.len() as libc::size_t) };
|
||||
| ^ the evaluated program deadlocked
|
||||
|
|
||||
= note: BACKTRACE:
|
||||
= note: inside `main` at tests/fail-dep/libc/socketpair_read_blocking.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
error: deadlock: the evaluated program deadlocked
|
||||
--> tests/fail-dep/libc/socketpair_write_blocking.rs:LL:CC
|
||||
|
|
||||
LL | let _ = unsafe { libc::write(fds[0], data as *const libc::c_void, 3) };
|
||||
| ^ the evaluated program deadlocked
|
||||
|
|
||||
= note: BACKTRACE:
|
||||
= note: inside `main` at tests/fail-dep/libc/socketpair_write_blocking.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
|
@ -7,18 +7,21 @@ 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`
|
||||
--> tests/fail/alloc/alloc_error_handler.rs:LL:CC
|
||||
|
|
||||
LL | handle_alloc_error(Layout::for_value(&0));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: std::alloc::rust_oom::{closure#0}
|
||||
at RUSTLIB/std/src/alloc.rs:LL:CC
|
||||
1: std::sys::backtrace::__rust_end_short_backtrace
|
||||
at RUSTLIB/std/src/sys/backtrace.rs:LL:CC
|
||||
2: std::alloc::rust_oom
|
||||
at RUSTLIB/std/src/alloc.rs:LL:CC
|
||||
3: std::alloc::_::__rust_alloc_error_handler
|
||||
at RUSTLIB/std/src/alloc.rs:LL:CC
|
||||
4: std::alloc::handle_alloc_error::rt_error
|
||||
at RUSTLIB/alloc/src/alloc.rs:LL:CC
|
||||
5: std::alloc::handle_alloc_error
|
||||
at RUSTLIB/alloc/src/alloc.rs:LL:CC
|
||||
6: main
|
||||
at tests/fail/alloc/alloc_error_handler.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -5,22 +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`
|
||||
--> 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`
|
||||
--> tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
|
||||
|
|
||||
LL | handle_alloc_error(Layout::for_value(&0));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: alloc_error_handler
|
||||
at tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
|
||||
1: _::__rust_alloc_error_handler
|
||||
at tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
|
||||
2: alloc::alloc::handle_alloc_error::rt_error
|
||||
at RUSTLIB/alloc/src/alloc.rs:LL:CC
|
||||
3: alloc::alloc::handle_alloc_error
|
||||
at RUSTLIB/alloc/src/alloc.rs:LL:CC
|
||||
4: miri_start
|
||||
at tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
|
|
|||
|
|
@ -7,16 +7,17 @@ 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`
|
||||
--> tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC
|
||||
|
|
||||
LL | handle_alloc_error(Layout::for_value(&0));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: panic_handler
|
||||
at tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC
|
||||
1: alloc::alloc::__alloc_error_handler::__rdl_alloc_error_handler
|
||||
at RUSTLIB/alloc/src/alloc.rs:LL:CC
|
||||
2: alloc::alloc::handle_alloc_error::rt_error
|
||||
at RUSTLIB/alloc/src/alloc.rs:LL:CC
|
||||
3: alloc::alloc::handle_alloc_error
|
||||
at RUSTLIB/alloc/src/alloc.rs:LL:CC
|
||||
4: miri_start
|
||||
at tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,14 +6,13 @@ 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`
|
||||
--> tests/fail/alloc/global_system_mixup.rs:LL:CC
|
||||
|
|
||||
LL | unsafe { System.deallocate(ptr, l) };
|
||||
| ^
|
||||
= note: stack backtrace:
|
||||
0: std::sys::alloc::PLATFORM::dealloc
|
||||
at RUSTLIB/std/src/sys/alloc/PLATFORM.rs:LL:CC
|
||||
1: <std::alloc::System as std::alloc::Allocator>::deallocate
|
||||
at RUSTLIB/std/src/alloc.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/alloc/global_system_mixup.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,15 +6,15 @@ 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`
|
||||
--> tests/fail/alloc/stack_free.rs:LL:CC
|
||||
|
|
||||
LL | drop(bad_box);
|
||||
| ^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: <std::boxed::Box<i32> as std::ops::Drop>::drop
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::ptr::drop_in_place))
|
||||
at RUSTLIB/core/src/ptr/mod.rs:LL:CC
|
||||
2: std::mem::drop
|
||||
at RUSTLIB/core/src/mem/mod.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail/alloc/stack_free.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -20,19 +20,15 @@ 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
|
||||
--> tests/fail/async-shared-mutable.rs:LL:CC
|
||||
|
|
||||
LL | .await
|
||||
| ^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/async-shared-mutable.rs:LL:CC
|
||||
|
|
||||
LL | assert_eq!(f.as_mut().poll(&mut cx), Poll::Pending);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: main::{closure#0}::{closure#0}
|
||||
at tests/fail/async-shared-mutable.rs:LL:CC
|
||||
1: <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
|
||||
2: main::{closure#0}
|
||||
at tests/fail/async-shared-mutable.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail/async-shared-mutable.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -28,19 +28,15 @@ 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
|
||||
--> tests/fail/async-shared-mutable.rs:LL:CC
|
||||
|
|
||||
LL | .await
|
||||
| ^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/async-shared-mutable.rs:LL:CC
|
||||
|
|
||||
LL | assert_eq!(f.as_mut().poll(&mut cx), Poll::Pending);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: main::{closure#0}::{closure#0}
|
||||
at tests/fail/async-shared-mutable.rs:LL:CC
|
||||
1: <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
|
||||
2: main::{closure#0}
|
||||
at tests/fail/async-shared-mutable.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail/async-shared-mutable.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xraw, xraw);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe
|
||||
at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,11 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xraw, xraw);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe
|
||||
at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xshr, xraw);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe
|
||||
at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,11 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xshr, xraw);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe
|
||||
at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xraw, xshr);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe
|
||||
at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,11 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xraw, xshr);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe
|
||||
at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xshr, xraw as *mut _);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe
|
||||
at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -19,20 +19,17 @@ 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`
|
||||
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
||||
|
|
||||
LL | y.set(1);
|
||||
| ^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
||||
|
|
||||
LL | safe_raw(xshr, xraw as *mut _);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: std::mem::replace
|
||||
at RUSTLIB/core/src/mem/mod.rs:LL:CC
|
||||
1: std::cell::Cell::replace
|
||||
at RUSTLIB/core/src/cell.rs:LL:CC
|
||||
2: std::cell::Cell::set
|
||||
at RUSTLIB/core/src/cell.rs:LL:CC
|
||||
3: safe
|
||||
at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
||||
4: main
|
||||
at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,18 +16,13 @@ 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`
|
||||
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | unknown_code_2();
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | demo_box_advanced_unique(Box::new(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: unknown_code_2
|
||||
at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
1: demo_box_advanced_unique
|
||||
at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,18 +18,13 @@ 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`
|
||||
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | unknown_code_2();
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | demo_box_advanced_unique(Box::new(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: unknown_code_2
|
||||
at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
1: demo_box_advanced_unique
|
||||
at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
||||
|
|
||||
LL | test(Box::from_raw(ptr), ptr);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: test
|
||||
at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -25,13 +25,11 @@ 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`
|
||||
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
||||
|
|
||||
LL | test(Box::from_raw(ptr), ptr);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: test
|
||||
at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -22,13 +22,11 @@ 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`
|
||||
--> tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC
|
||||
|
|
||||
LL | let (a, b) = safe::split_at_mut(&mut array, 0);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: safe::split_at_mut
|
||||
at tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
||||
|
|
||||
LL | foo(x, p);
|
||||
| ^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -25,13 +25,11 @@ 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`
|
||||
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
||||
|
|
||||
LL | foo(x, p);
|
||||
| ^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/illegal_write6.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
||||
|
|
||||
LL | inner(xraw, xref);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: inner
|
||||
at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -19,13 +19,11 @@ 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`
|
||||
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
||||
|
|
||||
LL | inner(xraw, xref);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: inner
|
||||
at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
||||
|
|
||||
LL | inner(ptr, &*ptr);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: inner
|
||||
at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -19,13 +19,11 @@ 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`
|
||||
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
||||
|
|
||||
LL | inner(ptr, &*ptr);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: inner
|
||||
at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -11,14 +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`
|
||||
--> tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC
|
||||
|
|
||||
LL | drop(Box::from_raw(ptr as *mut u32));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: std::boxed::Box::from_raw_in
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::boxed::Box::from_raw
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -11,14 +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`
|
||||
--> tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC
|
||||
|
|
||||
LL | drop(Box::from_raw(ptr as *mut u32));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: std::boxed::Box::from_raw_in
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::boxed::Box::from_raw
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,14 +6,13 @@ 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`
|
||||
--> tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC
|
||||
|
|
||||
LL | drop(Box::from_raw(ptr.as_ptr()));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: std::boxed::Box::from_raw_in
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::boxed::Box::from_raw
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,14 +6,13 @@ 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`
|
||||
--> tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC
|
||||
|
|
||||
LL | drop(Box::from_raw(ptr.as_ptr()));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: std::boxed::Box::from_raw_in
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::boxed::Box::from_raw
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,18 +16,13 @@ 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`
|
||||
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | unknown_code_2();
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | demo_mut_advanced_unique(&mut 0);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: unknown_code_2
|
||||
at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
1: demo_mut_advanced_unique
|
||||
at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,18 +18,13 @@ 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`
|
||||
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | unknown_code_2();
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
|
|
||||
LL | demo_mut_advanced_unique(&mut 0);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: unknown_code_2
|
||||
at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
1: demo_mut_advanced_unique
|
||||
at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,27 +16,17 @@ 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
|
||||
--> 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}>`
|
||||
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
|
|
||||
LL | dealloc();
|
||||
| ^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
|
|
||||
LL | / dealloc_while_running(
|
||||
LL | | Newtype(&mut *ptr, 0),
|
||||
LL | | || drop(Box::from_raw(ptr)),
|
||||
LL | | )
|
||||
| |_________^
|
||||
= note: stack backtrace:
|
||||
0: std::boxed::Box::from_raw_in
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::boxed::Box::from_raw
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
2: main::{closure#0}
|
||||
at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
3: dealloc_while_running
|
||||
at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
4: main
|
||||
at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -25,28 +25,19 @@ 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
|
||||
--> 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}>`
|
||||
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
|
|
||||
LL | dealloc();
|
||||
| ^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
|
|
||||
LL | / dealloc_while_running(
|
||||
LL | | Newtype(&mut *ptr, 0),
|
||||
LL | | || drop(Box::from_raw(ptr)),
|
||||
LL | | )
|
||||
| |_________^
|
||||
= note: stack backtrace:
|
||||
0: <std::boxed::Box<i32> as std::ops::Drop>::drop
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::ptr::drop_in_place))
|
||||
at RUSTLIB/core/src/ptr/mod.rs:LL:CC
|
||||
2: std::mem::drop
|
||||
at RUSTLIB/core/src/mem/mod.rs:LL:CC
|
||||
3: main::{closure#0}
|
||||
at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
4: dealloc_while_running
|
||||
at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
5: main
|
||||
at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,27 +16,17 @@ 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
|
||||
--> 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}>`
|
||||
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
|
|
||||
LL | dealloc();
|
||||
| ^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
|
|
||||
LL | / dealloc_while_running(
|
||||
LL | | Newtype(&mut *ptr),
|
||||
LL | | || drop(Box::from_raw(ptr)),
|
||||
LL | | )
|
||||
| |_________^
|
||||
= note: stack backtrace:
|
||||
0: std::boxed::Box::from_raw_in
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::boxed::Box::from_raw
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
2: main::{closure#0}
|
||||
at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
3: dealloc_while_running
|
||||
at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
4: main
|
||||
at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -25,28 +25,19 @@ 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
|
||||
--> 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}>`
|
||||
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
|
|
||||
LL | dealloc();
|
||||
| ^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
|
|
||||
LL | / dealloc_while_running(
|
||||
LL | | Newtype(&mut *ptr),
|
||||
LL | | || drop(Box::from_raw(ptr)),
|
||||
LL | | )
|
||||
| |_________^
|
||||
= note: stack backtrace:
|
||||
0: <std::boxed::Box<i32> as std::ops::Drop>::drop
|
||||
at RUSTLIB/alloc/src/boxed.rs:LL:CC
|
||||
1: std::ptr::drop_in_place))
|
||||
at RUSTLIB/core/src/ptr/mod.rs:LL:CC
|
||||
2: std::mem::drop
|
||||
at RUSTLIB/core/src/mem/mod.rs:LL:CC
|
||||
3: main::{closure#0}
|
||||
at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
4: dealloc_while_running
|
||||
at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
5: main
|
||||
at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -14,13 +14,17 @@ 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: this is on thread `unnamed-ID`
|
||||
= note: stack backtrace:
|
||||
0: thread_2
|
||||
at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
||||
1: main::{closure#1}
|
||||
at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
||||
note: the last function in that backtrace got called indirectly due to this code
|
||||
--> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
||||
|
|
||||
LL | let t2 = std::thread::spawn(move || thread_2(p));
|
||||
| ^^^^^^^^^^^
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -14,13 +14,17 @@ 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: this is on thread `unnamed-ID`
|
||||
= note: stack backtrace:
|
||||
0: thread_2
|
||||
at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
||||
1: main::{closure#1}
|
||||
at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
||||
note: the last function in that backtrace got called indirectly due to this code
|
||||
--> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
|
||||
|
|
||||
LL | let t2 = std::thread::spawn(move || thread_2(p));
|
||||
| ^^^^^^^^^^^
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
||||
|
|
||||
LL | foo(&mut (1, 2));
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,11 @@ 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`
|
||||
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
||||
|
|
||||
LL | foo(&mut (1, 2));
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -19,13 +19,11 @@ 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`
|
||||
--> tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
||||
|
|
||||
LL | match foo(&mut (1, 2)) {
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,11 @@ 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`
|
||||
--> tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
||||
|
|
||||
LL | match foo(&mut (1, 2)) {
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -19,13 +19,11 @@ 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`
|
||||
--> tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
||||
|
|
||||
LL | foo(&mut (1, 2)).0;
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,11 @@ 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`
|
||||
--> tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
||||
|
|
||||
LL | foo(&mut (1, 2)).0;
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: foo
|
||||
at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -11,18 +11,13 @@ 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`
|
||||
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
|
|
||||
LL | unknown_code(&*x);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
|
|
||||
LL | println!("{}", foo(&mut 0));
|
||||
| ^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: unknown_code
|
||||
at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
1: foo
|
||||
at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -12,18 +12,13 @@ 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`
|
||||
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
|
|
||||
LL | unknown_code(&*x);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
note: inside `main`
|
||||
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
|
|
||||
LL | println!("{}", foo(&mut 0));
|
||||
| ^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: unknown_code
|
||||
at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
1: foo
|
||||
at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
2: main
|
||||
at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ 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`
|
||||
--> tests/fail/box-cell-alias.rs:LL:CC
|
||||
|
|
||||
LL | let res = helper(val, ptr);
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: helper
|
||||
at tests/fail/box-cell-alias.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/box-cell-alias.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail/closures/uninhabited-variant.rs:LL:CC
|
||||
|
|
||||
LL | f();
|
||||
| ^^^
|
||||
= note: stack backtrace:
|
||||
0: main::{closure#0}
|
||||
at tests/fail/closures/uninhabited-variant.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/closures/uninhabited-variant.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@
|
|||
//@normalize-stderr-test: "LL \| .*" -> "LL | $$CODE"
|
||||
//@normalize-stderr-test: "\| +\^+" -> "| ^"
|
||||
//@normalize-stderr-test: "\n *= note:.*" -> ""
|
||||
//@normalize-stderr-test: "\n *\d+:.*\n *at .*" -> ""
|
||||
// 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,13 +2,8 @@ error: the evaluated program deadlocked
|
|||
--> RUSTLIB/std/$FILE:LL:CC
|
||||
|
|
||||
LL | $CODE
|
||||
| ^ thread `main` got stuck here
|
||||
| ^ thread got stuck here
|
||||
|
|
||||
note: inside `main`
|
||||
--> tests/fail/concurrency/mutex-leak-move-deadlock.rs:LL:CC
|
||||
|
|
||||
LL | $CODE
|
||||
| ^
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -16,19 +16,15 @@ 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`
|
||||
--> 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`
|
||||
--> tests/fail/coroutine-pinned-moved.rs:LL:CC
|
||||
|
|
||||
LL | coroutine_iterator_2.next(); // and use moved value
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: firstn::{closure#0}
|
||||
at tests/fail/coroutine-pinned-moved.rs:LL:CC
|
||||
1: <CoroutineIteratorAdapter<{static coroutine@tests/fail/coroutine-pinned-moved.rs:LL:CC}> as std::iter::Iterator>::next
|
||||
at tests/fail/coroutine-pinned-moved.rs:LL:CC
|
||||
2: std::boxed::iter::next
|
||||
at RUSTLIB/alloc/src/boxed/iter.rs:LL:CC
|
||||
3: main
|
||||
at tests/fail/coroutine-pinned-moved.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail/dangling_pointers/dangling_pointer_to_raw_pointer.rs:LL:CC
|
||||
|
|
||||
LL | via_ref(ptr); // this is not
|
||||
| ^^^^^^^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: via_ref
|
||||
at tests/fail/dangling_pointers/dangling_pointer_to_raw_pointer.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/dangling_pointers/dangling_pointer_to_raw_pointer.rs:LL:CC
|
||||
|
||||
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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`
|
||||
--> tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC
|
||||
|
|
||||
LL | evil();
|
||||
| ^^^^^^
|
||||
= note: stack backtrace:
|
||||
0: evil
|
||||
at tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC
|
||||
1: main
|
||||
at tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC
|
||||
|
||||
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