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:
bors 2026-01-01 14:25:01 +00:00
commit fcd630976c
257 changed files with 2127 additions and 1770 deletions

View file

@ -152,7 +152,7 @@ case $HOST_TARGET in
# Partially supported targets (tier 2) # 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 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 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=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 TEST_TARGET=thumbv7em-none-eabihf run_tests_minimal no_std
;; ;;

View file

@ -250,7 +250,7 @@ pub fn report_result<'tcx>(
StackedBorrowsUb { .. } | TreeBorrowsUb { .. } | DataRace { .. } => StackedBorrowsUb { .. } | TreeBorrowsUb { .. } | DataRace { .. } =>
Some("Undefined Behavior"), Some("Undefined Behavior"),
LocalDeadlock => { LocalDeadlock => {
labels.push(format!("this thread got stuck here")); labels.push(format!("thread got stuck here"));
None None
} }
GlobalDeadlock => { GlobalDeadlock => {
@ -264,10 +264,7 @@ pub fn report_result<'tcx>(
report_msg( report_msg(
DiagLevel::Error, DiagLevel::Error,
format!("the evaluated program deadlocked"), format!("the evaluated program deadlocked"),
vec![format!( vec![format!("thread got stuck here")],
"thread `{}` got stuck here",
ecx.machine.threads.get_thread_display_name(thread)
)],
vec![], vec![],
vec![], vec![],
&stacktrace, &stacktrace,
@ -558,42 +555,30 @@ fn report_msg<'tcx>(
thread: Option<ThreadId>, thread: Option<ThreadId>,
machine: &MiriMachine<'tcx>, machine: &MiriMachine<'tcx>,
) { ) {
let span = match stacktrace.first() { let origin_span = thread.map(|t| machine.threads.thread_ref(t).origin_span).unwrap_or(DUMMY_SP);
Some(fi) => fi.span, let span = stacktrace.first().map(|fi| fi.span).unwrap_or(origin_span);
None => // The only time we do not have an origin span is for `main`, and there we check the signature
match thread { // upfront. So we should always have a span here.
Some(thread_id) => machine.threads.thread_ref(thread_id).origin_span, assert!(!span.is_dummy());
None => DUMMY_SP,
}, let tcx = machine.tcx;
};
let sess = machine.tcx.sess;
let level = match diag_level { let level = match diag_level {
DiagLevel::Error => Level::Error, DiagLevel::Error => Level::Error,
DiagLevel::Warning => Level::Warning, DiagLevel::Warning => Level::Warning,
DiagLevel::Note => Level::Note, 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); err.span(span);
// Show main message. // Show main message.
if !span.is_dummy() { for line in span_msg {
for line in span_msg { err.span_label(span, line);
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)");
} }
// Show note and help messages. // Show note and help messages.
let mut extra_span = false;
for (span_data, note) in notes { for (span_data, note) in notes {
if let Some(span_data) = span_data { if let Some(span_data) = span_data {
err.span_note(span_data.span(), note); err.span_note(span_data.span(), note);
extra_span = true;
} else { } else {
err.note(note); err.note(note);
} }
@ -601,43 +586,44 @@ fn report_msg<'tcx>(
for (span_data, help) in helps { for (span_data, help) in helps {
if let Some(span_data) = span_data { if let Some(span_data) = span_data {
err.span_help(span_data.span(), help); err.span_help(span_data.span(), help);
extra_span = true;
} else { } else {
err.help(help); 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 // Add backtrace
if stacktrace.len() > 1 { if stacktrace.len() > 0 {
let mut backtrace_title = String::from("BACKTRACE"); // Skip it if we'd only shpw the span we have already shown
if extra_span { if stacktrace.len() > 1 {
write!(backtrace_title, " (of the first span)").unwrap(); let sm = tcx.sess.source_map();
} let mut out = format!("stack backtrace:");
if let Some(thread) = thread { for (idx, frame_info) in stacktrace.iter().enumerate() {
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();
let span = sm.span_to_diagnostic_string(frame_info.span); 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() { // For TLS dtors and non-main threads, show the "origin"
err.note(format!( if !origin_span.is_dummy() {
"this {} occurred while pushing a call frame onto an empty stack", let what = if stacktrace.len() > 1 {
level.to_str() "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"); err.note("the span indicates which code caused the function to be called, but may not be the literal call site");
} }

View file

@ -1,4 +1,5 @@
//@only-target: darwin //@only-target: darwin
//@compile-flags: -Zmiri-fixed-schedule
#![feature(sync_unsafe_cell)] #![feature(sync_unsafe_cell)]
use std::cell::SyncUnsafeCell; use std::cell::SyncUnsafeCell;

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC 0: check
note: inside `main` at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
--> 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
LL | check()
| ^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC 0: check
note: inside `main` at tests/fail-dep/concurrency/libc_pthread_cond_move.rs:LL:CC
--> 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
LL | check()
| ^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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: 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 = note: the span indicates which code caused the function to be called, but may not be the literal call site

View file

@ -6,6 +6,7 @@ LL | 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: 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: 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: 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 = note: the span indicates which code caused the function to be called, but may not be the literal call site

View file

@ -6,6 +6,7 @@ LL | 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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,6 +6,7 @@ LL | ... assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0);
| |
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior = help: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

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

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE on thread `unnamed-ID`: = note: this is on thread `unnamed-ID`
= note: inside `<std::boxed::Box<Mutex> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC = note: stack backtrace:
= 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 0: <std::boxed::Box<Mutex> as std::ops::Drop>::drop
= note: inside `std::mem::drop::<std::boxed::Box<Mutex>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside closure 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 --> 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC 0: check
note: inside `main` at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
--> 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
LL | check();
| ^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `check` at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC 0: check
note: inside `main` at tests/fail-dep/concurrency/libc_pthread_mutex_move.rs:LL:CC
--> 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
LL | check();
| ^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

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

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

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

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

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

View file

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

View file

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

View file

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

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 1: std::thread::lifecycle::JoinInner::join
--> tests/fail-dep/concurrency/windows_join_detached.rs:LL:CC at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
| 2: std::thread::JoinHandle::join
LL | thread.join().unwrap(); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,28 +2,35 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
| |
LL | let rc = unsafe { c::WaitForSingleObject(self.handle.as_raw_handle(), c::INFINITE) }; 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: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 1: std::thread::lifecycle::JoinInner::join
--> tests/fail-dep/concurrency/windows_join_main.rs:LL:CC at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
| 2: std::thread::JoinHandle::join
LL | / thread::spawn(|| { at RUSTLIB/std/src/thread/join_handle.rs:LL:CC
LL | | unsafe { 3: main
LL | | assert_eq!(WaitForSingleObject(MAIN_THREAD, INFINITE), WAIT_OBJECT_0); at tests/fail-dep/concurrency/windows_join_main.rs:LL:CC
... |
LL | | .join()
| |___________^
error: the evaluated program deadlocked error: the evaluated program deadlocked
--> tests/fail-dep/concurrency/windows_join_main.rs:LL:CC --> tests/fail-dep/concurrency/windows_join_main.rs:LL:CC
| |
LL | assert_eq!(WaitForSingleObject(MAIN_THREAD, INFINITE), WAIT_OBJECT_0); 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,13 +2,27 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
| |
LL | let rc = unsafe { c::WaitForSingleObject(self.handle.as_raw_handle(), c::INFINITE) }; 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: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 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 --> tests/fail-dep/concurrency/windows_join_self.rs:LL:CC
| |
LL | / thread::spawn(|| { LL | / thread::spawn(|| {
@ -17,14 +31,7 @@ LL | | let native = GetCurrentThread();
LL | | assert_eq!(WaitForSingleObject(native, INFINITE), WAIT_OBJECT_0); LL | | assert_eq!(WaitForSingleObject(native, INFINITE), WAIT_OBJECT_0);
LL | | } LL | | }
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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,23 +2,36 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
| |
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) }; LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here | ^ thread got stuck here
| |
= note: BACKTRACE: = note: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 1: std::thread::lifecycle::JoinInner::join
--> tests/fail-dep/libc/eventfd_block_read_twice.rs:LL:CC at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
| 2: std::thread::JoinHandle::join
LL | thread2.join().unwrap(); 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 error: the evaluated program deadlocked
--> tests/fail-dep/libc/eventfd_block_read_twice.rs:LL:CC --> 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() }; 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,23 +2,38 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
| |
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) }; LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here | ^ thread got stuck here
| |
= note: BACKTRACE: = note: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 1: std::thread::lifecycle::JoinInner::join
--> tests/fail-dep/libc/eventfd_block_write_twice.rs:LL:CC at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
| 2: std::thread::JoinHandle::join
LL | thread2.join().unwrap(); 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 error: the evaluated program deadlocked
--> tests/fail-dep/libc/eventfd_block_write_twice.rs:LL:CC --> 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() 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,7 +2,9 @@ error: the evaluated program deadlocked
--> tests/fail-dep/libc/fcntl_fsetfl_while_blocking.rs:LL:CC --> 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) }; 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `test_mkstemp_immutable_arg` at tests/fail-dep/libc/fs/mkstemp_immutable_arg.rs:LL:CC 0: test_mkstemp_immutable_arg
note: inside `main` at tests/fail-dep/libc/fs/mkstemp_immutable_arg.rs:LL:CC
--> 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
LL | test_mkstemp_immutable_arg();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `test_file_open_missing_needed_mode` at tests/fail-dep/libc/fs/unix_open_missing_required_mode.rs:LL:CC 0: test_file_open_missing_needed_mode
note: inside `main` at tests/fail-dep/libc/fs/unix_open_missing_required_mode.rs:LL:CC
--> 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
LL | test_file_open_missing_needed_mode();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | unsafe { VAL_TWO = 51 };
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior = help: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

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

View file

@ -5,6 +5,6 @@
fn main() { fn main() {
let mut buf = vec![0u8; 15]; let mut buf = vec![0u8; 15];
unsafe { 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
} }
} }

View file

@ -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 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-threadname.rs:LL:CC --> 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>()); 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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
help: ALLOC was allocated here: 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]; 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,23 +2,38 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
| |
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) }; LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here | ^ thread got stuck here
| |
= note: BACKTRACE: = note: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 1: std::thread::lifecycle::JoinInner::join
--> tests/fail-dep/libc/socketpair-close-while-blocked.rs:LL:CC at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
| 2: std::thread::JoinHandle::join
LL | thread1.join().unwrap(); 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 error: the evaluated program deadlocked
--> tests/fail-dep/libc/socketpair-close-while-blocked.rs:LL:CC --> 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) 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,6 +11,7 @@ LL | unsafe { VAL = 1 };
| ^^^^^^^ | ^^^^^^^
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior = help: 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: 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,23 +2,38 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
| |
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) }; LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here | ^ thread got stuck here
| |
= note: BACKTRACE: = note: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 1: std::thread::lifecycle::JoinInner::join
--> tests/fail-dep/libc/socketpair_block_read_twice.rs:LL:CC at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
| 2: std::thread::JoinHandle::join
LL | thread2.join().unwrap(); 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 error: the evaluated program deadlocked
--> tests/fail-dep/libc/socketpair_block_read_twice.rs:LL:CC --> 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) 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -2,23 +2,38 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
| |
LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) }; LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) };
| ^ thread `main` got stuck here | ^ thread got stuck here
| |
= note: BACKTRACE: = note: this is on thread `main`
= note: inside `std::sys::thread::PLATFORM::Thread::join` at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC = note: stack backtrace:
= note: inside `std::thread::lifecycle::JoinInner::<'_, ()>::join` at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC 0: std::sys::thread::PLATFORM::Thread::join
= note: inside `std::thread::JoinHandle::<()>::join` at RUSTLIB/std/src/thread/join_handle.rs:LL:CC at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC
note: inside `main` 1: std::thread::lifecycle::JoinInner::join
--> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC
| 2: std::thread::JoinHandle::join
LL | thread2.join().unwrap(); 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 error: the evaluated program deadlocked
--> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC --> 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()) }; 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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

View file

@ -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

View file

@ -7,18 +7,21 @@ error: abnormal termination: the program aborted execution
LL | crate::process::abort() LL | crate::process::abort()
| ^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here | ^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here
| |
= note: BACKTRACE: = note: stack backtrace:
= note: inside closure at RUSTLIB/std/src/alloc.rs:LL:CC 0: std::alloc::rust_oom::{closure#0}
= 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 at RUSTLIB/std/src/alloc.rs:LL:CC
= note: inside `std::alloc::rust_oom` at RUSTLIB/std/src/alloc.rs:LL:CC 1: std::sys::backtrace::__rust_end_short_backtrace
= note: inside `std::alloc::_::__rust_alloc_error_handler` at RUSTLIB/std/src/alloc.rs:LL:CC at RUSTLIB/std/src/sys/backtrace.rs:LL:CC
= note: inside `std::alloc::handle_alloc_error::rt_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC 2: std::alloc::rust_oom
= note: inside `std::alloc::handle_alloc_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC at RUSTLIB/std/src/alloc.rs:LL:CC
note: inside `main` 3: std::alloc::_::__rust_alloc_error_handler
--> tests/fail/alloc/alloc_error_handler.rs:LL:CC at RUSTLIB/std/src/alloc.rs:LL:CC
| 4: std::alloc::handle_alloc_error::rt_error
LL | handle_alloc_error(Layout::for_value(&0)); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -5,22 +5,17 @@ error: abnormal termination: the program aborted execution
LL | core::intrinsics::abort(); LL | core::intrinsics::abort();
| ^^^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here | ^^^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here
| |
= note: BACKTRACE: = note: stack backtrace:
= note: inside `alloc_error_handler` at tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC 0: alloc_error_handler
note: inside `_::__rust_alloc_error_handler` at tests/fail/alloc/alloc_error_handler_custom.rs:LL:CC
--> 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
LL | #[alloc_error_handler] 2: alloc::alloc::handle_alloc_error::rt_error
| ---------------------- in this attribute macro expansion at RUSTLIB/alloc/src/alloc.rs:LL:CC
LL | fn alloc_error_handler(layout: Layout) -> ! { 3: alloc::alloc::handle_alloc_error
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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 4: miri_start
= note: inside `alloc::alloc::handle_alloc_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC at tests/fail/alloc/alloc_error_handler_custom.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));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 1 previous error error: aborting due to 1 previous error

View file

@ -7,16 +7,17 @@ error: abnormal termination: the program aborted execution
LL | core::intrinsics::abort(); LL | core::intrinsics::abort();
| ^^^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here | ^^^^^^^^^^^^^^^^^^^^^^^^^ abnormal termination occurred here
| |
= note: BACKTRACE: = note: stack backtrace:
= note: inside `panic_handler` at tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC 0: panic_handler
= note: inside `alloc::alloc::__alloc_error_handler::__rdl_alloc_error_handler` at RUSTLIB/alloc/src/alloc.rs:LL:CC at tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC
= note: inside `alloc::alloc::handle_alloc_error::rt_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC 1: alloc::alloc::__alloc_error_handler::__rdl_alloc_error_handler
= note: inside `alloc::alloc::handle_alloc_error` at RUSTLIB/alloc/src/alloc.rs:LL:CC at RUSTLIB/alloc/src/alloc.rs:LL:CC
note: inside `miri_start` 2: alloc::alloc::handle_alloc_error::rt_error
--> tests/fail/alloc/alloc_error_handler_no_std.rs:LL:CC at RUSTLIB/alloc/src/alloc.rs:LL:CC
| 3: alloc::alloc::handle_alloc_error
LL | handle_alloc_error(Layout::for_value(&0)); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -6,14 +6,13 @@ LL | FREE();
| |
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior = 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack 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 0: std::sys::alloc::PLATFORM::dealloc
= note: inside `<std::alloc::System as std::alloc::Allocator>::deallocate` at RUSTLIB/std/src/alloc.rs:LL:CC at RUSTLIB/std/src/sys/alloc/PLATFORM.rs:LL:CC
note: inside `main` 1: <std::alloc::System as std::alloc::Allocator>::deallocate
--> tests/fail/alloc/global_system_mixup.rs:LL:CC at RUSTLIB/std/src/alloc.rs:LL:CC
| 2: main
LL | unsafe { System.deallocate(ptr, l) }; 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `<std::boxed::Box<i32> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: <std::boxed::Box<i32> as std::ops::Drop>::drop
= 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 at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::mem::drop::<std::boxed::Box<i32>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC 1: std::ptr::drop_in_place))
note: inside `main` at RUSTLIB/core/src/ptr/mod.rs:LL:CC
--> tests/fail/alloc/stack_free.rs:LL:CC 2: std::mem::drop
| at RUSTLIB/core/src/mem/mod.rs:LL:CC
LL | drop(bad_box); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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()`. LL | let _: Pin<&_> = f.as_ref(); // Or: `f.as_mut().into_ref()`.
| ^^^^^^^^^^ | ^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside closure at tests/fail/async-shared-mutable.rs:LL:CC 0: main::{closure#0}::{closure#0}
= 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 at tests/fail/async-shared-mutable.rs:LL:CC
note: inside closure 1: <std::future::PollFn<{closure@tests/fail/async-shared-mutable.rs:LL:CC}> as std::future::Future>::poll
--> tests/fail/async-shared-mutable.rs:LL:CC at RUSTLIB/core/src/future/poll_fn.rs:LL:CC
| 2: main::{closure#0}
LL | .await at tests/fail/async-shared-mutable.rs:LL:CC
| ^^^^^ 3: main
note: inside `main` at tests/fail/async-shared-mutable.rs:LL:CC
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | assert_eq!(f.as_mut().poll(&mut cx), Poll::Pending);
| ^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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()`. LL | let _: Pin<&_> = f.as_ref(); // Or: `f.as_mut().into_ref()`.
| ^^^^^^^^^^ | ^^^^^^^^^^
= help: this transition corresponds to a loss of write permissions = help: this transition corresponds to a loss of write permissions
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside closure at tests/fail/async-shared-mutable.rs:LL:CC 0: main::{closure#0}::{closure#0}
= 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 at tests/fail/async-shared-mutable.rs:LL:CC
note: inside closure 1: <std::future::PollFn<{closure@tests/fail/async-shared-mutable.rs:LL:CC}> as std::future::Future>::poll
--> tests/fail/async-shared-mutable.rs:LL:CC at RUSTLIB/core/src/future/poll_fn.rs:LL:CC
| 2: main::{closure#0}
LL | .await at tests/fail/async-shared-mutable.rs:LL:CC
| ^^^^^ 3: main
note: inside `main` at tests/fail/async-shared-mutable.rs:LL:CC
--> tests/fail/async-shared-mutable.rs:LL:CC
|
LL | assert_eq!(f.as_mut().poll(&mut cx), Poll::Pending);
| ^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> is this argument
| |
LL | fn safe(x: &mut i32, y: &mut i32) { LL | fn safe(x: &mut i32, y: &mut i32) {
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC 0: safe
note: inside `main` at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC 1: main
| at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
LL | safe_raw(xraw, xraw);
| ^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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) { LL | fn safe(x: &mut i32, y: &mut i32) {
| ^ | ^
= help: this transition corresponds to a temporary loss of write permissions until function exit = help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC 0: safe
note: inside `main` at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut1.rs:LL:CC 1: main
| at tests/fail/both_borrows/aliasing_mut1.rs:LL:CC
LL | safe_raw(xraw, xraw);
| ^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> is this argument
| |
LL | fn safe(x: &i32, y: &mut i32) { LL | fn safe(x: &i32, y: &mut i32) {
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC 0: safe
note: inside `main` at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC 1: main
| at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
LL | safe_raw(xshr, xraw);
| ^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -18,13 +18,11 @@ help: the accessed tag <TAG> later transitioned to Reserved (conflicted) due to
LL | let _v = *x; LL | let _v = *x;
| ^^ | ^^
= help: this transition corresponds to a temporary loss of write permissions until function exit = help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC 0: safe
note: inside `main` at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut2.rs:LL:CC 1: main
| at tests/fail/both_borrows/aliasing_mut2.rs:LL:CC
LL | safe_raw(xshr, xraw);
| ^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> was later invalidated at offsets [0x0..0x4] by a Unique function-ent
| |
LL | safe_raw(xraw, xshr); LL | safe_raw(xraw, xshr);
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC 0: safe
note: inside `main` at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC 1: main
| at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
LL | safe_raw(xraw, xshr);
| ^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -18,13 +18,11 @@ help: the accessed tag <TAG> later transitioned to Reserved (conflicted) due to
LL | fn safe(x: &mut i32, y: &i32) { LL | fn safe(x: &mut i32, y: &i32) {
| ^ | ^
= help: this transition corresponds to a temporary loss of write permissions until function exit = help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC 0: safe
note: inside `main` at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut3.rs:LL:CC 1: main
| at tests/fail/both_borrows/aliasing_mut3.rs:LL:CC
LL | safe_raw(xraw, xshr);
| ^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> is this argument
| |
LL | fn safe(x: &i32, y: &mut Cell<i32>) { LL | fn safe(x: &i32, y: &mut Cell<i32>) {
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe` at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC 0: safe
note: inside `main` at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC 1: main
| at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
LL | safe_raw(xshr, xraw as *mut _);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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>) { LL | fn safe(x: &i32, y: &mut Cell<i32>) {
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `std::mem::replace::<i32>` at RUSTLIB/core/src/mem/mod.rs:LL:CC 0: std::mem::replace
= note: inside `std::cell::Cell::<i32>::replace` at RUSTLIB/core/src/cell.rs:LL:CC at RUSTLIB/core/src/mem/mod.rs:LL:CC
= note: inside `std::cell::Cell::<i32>::set` at RUSTLIB/core/src/cell.rs:LL:CC 1: std::cell::Cell::replace
note: inside `safe` at RUSTLIB/core/src/cell.rs:LL:CC
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC 2: std::cell::Cell::set
| at RUSTLIB/core/src/cell.rs:LL:CC
LL | y.set(1); 3: safe
| ^^^^^^^^ at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
note: inside `main` 4: main
--> tests/fail/both_borrows/aliasing_mut4.rs:LL:CC at tests/fail/both_borrows/aliasing_mut4.rs:LL:CC
|
LL | safe_raw(xshr, xraw as *mut _);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,18 +16,13 @@ help: <TAG> was later invalidated at offsets [0x0..0x4] by a write access
| |
LL | *our = 5; LL | *our = 5;
| ^^^^^^^^ | ^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `unknown_code_2` at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC 0: unknown_code_2
note: inside `demo_box_advanced_unique` at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
--> 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
LL | unknown_code_2(); 2: main
| ^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
note: inside `main`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | demo_box_advanced_unique(Box::new(0));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -18,18 +18,13 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | *our = 5; LL | *our = 5;
| ^^^^^^^^ | ^^^^^^^^
= help: this transition corresponds to a loss of read permissions = help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `unknown_code_2` at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC 0: unknown_code_2
note: inside `demo_box_advanced_unique` at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
--> 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
LL | unknown_code_2(); 2: main
| ^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
note: inside `main`
--> tests/fail/both_borrows/box_exclusive_violation1.rs:LL:CC
|
LL | demo_box_advanced_unique(Box::new(0));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> is this argument
| |
LL | unsafe fn test(mut x: Box<i32>, y: *const i32) -> i32 { LL | unsafe fn test(mut x: Box<i32>, y: *const i32) -> i32 {
| ^^^^^ | ^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `test` at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC 0: test
note: inside `main` at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC 1: main
| at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
LL | test(Box::from_raw(ptr), ptr);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -25,13 +25,11 @@ help: the protected tag <TAG> later transitioned to Unique due to a child write
LL | *x = 5; LL | *x = 5;
| ^^^^^^ | ^^^^^^
= help: this transition corresponds to the first write to a 2-phase borrowed mutable reference = help: this transition corresponds to the first write to a 2-phase borrowed mutable reference
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `test` at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC 0: test
note: inside `main` at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
--> tests/fail/both_borrows/box_noalias_violation.rs:LL:CC 1: main
| at tests/fail/both_borrows/box_noalias_violation.rs:LL:CC
LL | test(Box::from_raw(ptr), ptr);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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), LL | from_raw_parts_mut(ptr.offset(mid as isize), len - mid),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `safe::split_at_mut::<i32>` at tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC 0: safe::split_at_mut
note: inside `main` at tests/fail/both_borrows/buggy_split_at_mut.rs:LL:CC
--> 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
LL | let (a, b) = safe::split_at_mut(&mut array, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> is this argument
| |
LL | fn foo(a: &mut u32, y: *mut u32) -> u32 { LL | fn foo(a: &mut u32, y: *mut u32) -> u32 {
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/illegal_write6.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/illegal_write6.rs:LL:CC
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC 1: main
| at tests/fail/both_borrows/illegal_write6.rs:LL:CC
LL | foo(x, p);
| ^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -25,13 +25,11 @@ help: the protected tag <TAG> later transitioned to Unique due to a child write
LL | *a = 1; LL | *a = 1;
| ^^^^^^ | ^^^^^^
= help: this transition corresponds to the first write to a 2-phase borrowed mutable reference = help: this transition corresponds to the first write to a 2-phase borrowed mutable reference
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/illegal_write6.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/illegal_write6.rs:LL:CC
--> tests/fail/both_borrows/illegal_write6.rs:LL:CC 1: main
| at tests/fail/both_borrows/illegal_write6.rs:LL:CC
LL | foo(x, p);
| ^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> is this argument
| |
LL | fn inner(x: *mut i32, _y: &i32) { LL | fn inner(x: *mut i32, _y: &i32) {
| ^^ | ^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC 0: inner
note: inside `main` at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC 1: main
| at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
LL | inner(xraw, xref);
| ^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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) { LL | fn inner(x: *mut i32, _y: &i32) {
| ^^ | ^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC 0: inner
note: inside `main` at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
--> tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC 1: main
| at tests/fail/both_borrows/invalidate_against_protector2.rs:LL:CC
LL | inner(xraw, xref);
| ^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> is this argument
| |
LL | fn inner(x: *mut i32, _y: &i32) { LL | fn inner(x: *mut i32, _y: &i32) {
| ^^ | ^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC 0: inner
note: inside `main` at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC 1: main
| at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
LL | inner(ptr, &*ptr);
| ^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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) { LL | fn inner(x: *mut i32, _y: &i32) {
| ^^ | ^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `inner` at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC 0: inner
note: inside `main` at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
--> tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC 1: main
| at tests/fail/both_borrows/invalidate_against_protector3.rs:LL:CC
LL | inner(ptr, &*ptr);
| ^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,14 +11,13 @@ help: ALLOC was allocated here:
| |
LL | let ptr = Box::into_raw(Box::new(0u16)); LL | let ptr = Box::into_raw(Box::new(0u16));
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `std::boxed::Box::<u32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: std::boxed::Box::from_raw_in
= note: inside `std::boxed::Box::<u32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main` 1: std::boxed::Box::from_raw
--> tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
| 2: main
LL | drop(Box::from_raw(ptr as *mut u32)); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -11,14 +11,13 @@ help: ALLOC was allocated here:
| |
LL | let ptr = Box::into_raw(Box::new(0u16)); LL | let ptr = Box::into_raw(Box::new(0u16));
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `std::boxed::Box::<u32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: std::boxed::Box::from_raw_in
= note: inside `std::boxed::Box::<u32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main` 1: std::boxed::Box::from_raw
--> tests/fail/both_borrows/issue-miri-1050-1.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
| 2: main
LL | drop(Box::from_raw(ptr as *mut u32)); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: std::boxed::Box::from_raw_in
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main` 1: std::boxed::Box::from_raw
--> tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
| 2: main
LL | drop(Box::from_raw(ptr.as_ptr())); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: std::boxed::Box::from_raw_in
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside `main` 1: std::boxed::Box::from_raw
--> tests/fail/both_borrows/issue-miri-1050-2.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
| 2: main
LL | drop(Box::from_raw(ptr.as_ptr())); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,18 +16,13 @@ help: <TAG> was later invalidated at offsets [0x0..0x4] by a write access
| |
LL | *our = 5; LL | *our = 5;
| ^^^^^^^^ | ^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `unknown_code_2` at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC 0: unknown_code_2
note: inside `demo_mut_advanced_unique` at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
--> 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
LL | unknown_code_2(); 2: main
| ^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
note: inside `main`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | demo_mut_advanced_unique(&mut 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -18,18 +18,13 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | *our = 5; LL | *our = 5;
| ^^^^^^^^ | ^^^^^^^^
= help: this transition corresponds to a loss of read permissions = help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `unknown_code_2` at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC 0: unknown_code_2
note: inside `demo_mut_advanced_unique` at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
--> 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
LL | unknown_code_2(); 2: main
| ^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
note: inside `main`
--> tests/fail/both_borrows/mut_exclusive_violation1.rs:LL:CC
|
LL | demo_mut_advanced_unique(&mut 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,27 +16,17 @@ help: <TAG> is this argument
| |
LL | fn dealloc_while_running(_n: Newtype<'_>, dealloc: impl FnOnce()) { LL | fn dealloc_while_running(_n: Newtype<'_>, dealloc: impl FnOnce()) {
| ^^ | ^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: std::boxed::Box::from_raw_in
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside closure 1: std::boxed::Box::from_raw
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
| 2: main::{closure#0}
LL | || drop(Box::from_raw(ptr)), at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
| ^^^^^^^^^^^^^^^^^^ 3: dealloc_while_running
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC}>` at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC 4: main
| at 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: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -25,28 +25,19 @@ help: the protected tag <TAG> later transitioned to Reserved (conflicted) due to
LL | || drop(Box::from_raw(ptr)), LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
= help: this transition corresponds to a temporary loss of write permissions until function exit = help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `<std::boxed::Box<i32> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: <std::boxed::Box<i32> as std::ops::Drop>::drop
= 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 at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::mem::drop::<std::boxed::Box<i32>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC 1: std::ptr::drop_in_place))
note: inside closure at RUSTLIB/core/src/ptr/mod.rs:LL:CC
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC 2: std::mem::drop
| at RUSTLIB/core/src/mem/mod.rs:LL:CC
LL | || drop(Box::from_raw(ptr)), 3: main::{closure#0}
| ^^^^^^^^^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC}>` 4: dealloc_while_running
--> tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
| 5: main
LL | dealloc(); at tests/fail/both_borrows/newtype_pair_retagging.rs:LL:CC
| ^^^^^^^^^
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: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,27 +16,17 @@ help: <TAG> is this argument
| |
LL | fn dealloc_while_running(_n: Newtype<'_>, dealloc: impl FnOnce()) { LL | fn dealloc_while_running(_n: Newtype<'_>, dealloc: impl FnOnce()) {
| ^^ | ^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `std::boxed::Box::<i32>::from_raw_in` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: std::boxed::Box::from_raw_in
= note: inside `std::boxed::Box::<i32>::from_raw` at RUSTLIB/alloc/src/boxed.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
note: inside closure 1: std::boxed::Box::from_raw
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC at RUSTLIB/alloc/src/boxed.rs:LL:CC
| 2: main::{closure#0}
LL | || drop(Box::from_raw(ptr)), at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
| ^^^^^^^^^^^^^^^^^^ 3: dealloc_while_running
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_retagging.rs:LL:CC}>` at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC 4: main
| at 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: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -25,28 +25,19 @@ help: the protected tag <TAG> later transitioned to Reserved (conflicted) due to
LL | || drop(Box::from_raw(ptr)), LL | || drop(Box::from_raw(ptr)),
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
= help: this transition corresponds to a temporary loss of write permissions until function exit = help: this transition corresponds to a temporary loss of write permissions until function exit
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `<std::boxed::Box<i32> as std::ops::Drop>::drop` at RUSTLIB/alloc/src/boxed.rs:LL:CC 0: <std::boxed::Box<i32> as std::ops::Drop>::drop
= 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 at RUSTLIB/alloc/src/boxed.rs:LL:CC
= note: inside `std::mem::drop::<std::boxed::Box<i32>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC 1: std::ptr::drop_in_place))
note: inside closure at RUSTLIB/core/src/ptr/mod.rs:LL:CC
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC 2: std::mem::drop
| at RUSTLIB/core/src/mem/mod.rs:LL:CC
LL | || drop(Box::from_raw(ptr)), 3: main::{closure#0}
| ^^^^^^^^^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
note: inside `dealloc_while_running::<{closure@tests/fail/both_borrows/newtype_retagging.rs:LL:CC}>` 4: dealloc_while_running
--> tests/fail/both_borrows/newtype_retagging.rs:LL:CC at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
| 5: main
LL | dealloc(); at tests/fail/both_borrows/newtype_retagging.rs:LL:CC
| ^^^^^^^^^
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: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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: 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: this is on thread `unnamed-ID`
= note: inside `thread_2` at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC = note: stack backtrace:
note: inside closure 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 --> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
| |
LL | let t2 = std::thread::spawn(move || thread_2(p)); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: 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: 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: this is on thread `unnamed-ID`
= note: inside `thread_2` at tests/fail/both_borrows/retag_data_race_write.rs:LL:CC = note: stack backtrace:
note: inside closure 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 --> tests/fail/both_borrows/retag_data_race_write.rs:LL:CC
| |
LL | let t2 = std::thread::spawn(move || thread_2(p)); 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> was later invalidated at offsets [0x4..0x8] by a write access
| |
LL | unsafe { *xraw = (42, 23) }; // unfreeze LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC 1: main
| at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
LL | foo(&mut (1, 2));
| ^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -18,13 +18,11 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | unsafe { *xraw = (42, 23) }; // unfreeze LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
= help: this transition corresponds to a loss of read permissions = help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
--> tests/fail/both_borrows/return_invalid_shr.rs:LL:CC 1: main
| at tests/fail/both_borrows/return_invalid_shr.rs:LL:CC
LL | foo(&mut (1, 2));
| ^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -19,13 +19,11 @@ help: <TAG> was later invalidated at offsets [0x4..0x8] by a write access
| |
LL | unsafe { *xraw = (42, 23) }; // unfreeze LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
--> 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
LL | match foo(&mut (1, 2)) {
| ^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -18,13 +18,11 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | unsafe { *xraw = (42, 23) }; // unfreeze LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
= help: this transition corresponds to a loss of read permissions = help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/return_invalid_shr_option.rs:LL:CC
--> 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
LL | match foo(&mut (1, 2)) {
| ^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -19,13 +19,11 @@ help: <TAG> was later invalidated at offsets [0x4..0x8] by a write access
| |
LL | unsafe { *xraw = (42, 23) }; // unfreeze LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
--> 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
LL | foo(&mut (1, 2)).0;
| ^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -18,13 +18,11 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a foreign wri
LL | unsafe { *xraw = (42, 23) }; // unfreeze LL | unsafe { *xraw = (42, 23) }; // unfreeze
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
= help: this transition corresponds to a loss of read permissions = help: this transition corresponds to a loss of read permissions
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `foo` at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC 0: foo
note: inside `main` at tests/fail/both_borrows/return_invalid_shr_tuple.rs:LL:CC
--> 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
LL | foo(&mut (1, 2)).0;
| ^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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; LL | *(x as *const i32 as *mut i32) = 7;
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `unknown_code` at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC 0: unknown_code
note: inside `foo` at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC 1: foo
| at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
LL | unknown_code(&*x); 2: main
| ^^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
note: inside `main`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | println!("{}", foo(&mut 0));
| ^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -12,18 +12,13 @@ help: the accessed tag <TAG> was created here, in the initial state Frozen
| |
LL | fn unknown_code(x: &i32) { LL | fn unknown_code(x: &i32) {
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `unknown_code` at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC 0: unknown_code
note: inside `foo` at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC 1: foo
| at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
LL | unknown_code(&*x); 2: main
| ^^^^^^^^^^^^^^^^^ at tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
note: inside `main`
--> tests/fail/both_borrows/shr_frozen_violation1.rs:LL:CC
|
LL | println!("{}", foo(&mut 0));
| ^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,13 +16,11 @@ help: <TAG> was later invalidated at offsets [0x0..0x1] by a Unique retag
| |
LL | let res = helper(val, ptr); LL | let res = helper(val, ptr);
| ^^^ | ^^^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside `helper` at tests/fail/box-cell-alias.rs:LL:CC 0: helper
note: inside `main` at tests/fail/box-cell-alias.rs:LL:CC
--> tests/fail/box-cell-alias.rs:LL:CC 1: main
| at tests/fail/box-cell-alias.rs:LL:CC
LL | let res = helper(val, ptr);
| ^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside closure at tests/fail/closures/uninhabited-variant.rs:LL:CC 0: main::{closure#0}
note: inside `main` at tests/fail/closures/uninhabited-variant.rs:LL:CC
--> tests/fail/closures/uninhabited-variant.rs:LL:CC 1: main
| at tests/fail/closures/uninhabited-variant.rs:LL:CC
LL | f();
| ^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -3,8 +3,9 @@
//@normalize-stderr-test: "LL \| .*" -> "LL | $$CODE" //@normalize-stderr-test: "LL \| .*" -> "LL | $$CODE"
//@normalize-stderr-test: "\| +\^+" -> "| ^" //@normalize-stderr-test: "\| +\^+" -> "| ^"
//@normalize-stderr-test: "\n *= note:.*" -> "" //@normalize-stderr-test: "\n *= note:.*" -> ""
//@normalize-stderr-test: "\n *\d+:.*\n *at .*" -> ""
// On macOS we use chekced pthread mutexes which changes the error // 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" //@normalize-stderr-test: "a thread deadlocked" -> "the evaluated program deadlocked"
use std::mem; use std::mem;
use std::sync::Mutex; use std::sync::Mutex;

View file

@ -2,13 +2,8 @@ error: the evaluated program deadlocked
--> RUSTLIB/std/$FILE:LL:CC --> RUSTLIB/std/$FILE:LL:CC
| |
LL | $CODE 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 note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -16,19 +16,15 @@ help: ALLOC was deallocated here:
| |
LL | }; // *deallocate* coroutine_iterator LL | }; // *deallocate* coroutine_iterator
| ^ | ^
= note: BACKTRACE (of the first span): = note: stack backtrace:
= note: inside closure at tests/fail/coroutine-pinned-moved.rs:LL:CC 0: firstn::{closure#0}
note: inside `<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
--> 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
LL | match me.resume(()) { 2: std::boxed::iter::next
| ^^^^^^^^^^^^^ at RUSTLIB/alloc/src/boxed/iter.rs:LL:CC
= 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 3: main
note: inside `main` at tests/fail/coroutine-pinned-moved.rs:LL:CC
--> tests/fail/coroutine-pinned-moved.rs:LL:CC
|
LL | coroutine_iterator_2.next(); // and use moved value
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `via_ref` at tests/fail/dangling_pointers/dangling_pointer_to_raw_pointer.rs:LL:CC 0: via_ref
note: inside `main` at tests/fail/dangling_pointers/dangling_pointer_to_raw_pointer.rs:LL:CC
--> 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
LL | via_ref(ptr); // this is not
| ^^^^^^^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

View file

@ -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: 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: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
= note: BACKTRACE: = note: stack backtrace:
= note: inside `evil` at tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC 0: evil
note: inside `main` at tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC
--> tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC 1: main
| at tests/fail/dangling_pointers/storage_dead_dangling.rs:LL:CC
LL | evil();
| ^^^^^^
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace 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