diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/consts/missing_span_in_backtrace.rs | 26 | ||||
| -rw-r--r-- | src/test/ui/consts/missing_span_in_backtrace.stderr | 23 | ||||
| -rw-r--r-- | src/test/ui/span/issue-71363.stderr | 2 |
3 files changed, 51 insertions, 0 deletions
diff --git a/src/test/ui/consts/missing_span_in_backtrace.rs b/src/test/ui/consts/missing_span_in_backtrace.rs new file mode 100644 index 00000000000..dd4ee3bed44 --- /dev/null +++ b/src/test/ui/consts/missing_span_in_backtrace.rs @@ -0,0 +1,26 @@ +// compile-flags: -Z simulate-remapped-rust-src-base=/rustc/xyz -Z translate-remapped-path-to-local-path=no + +#![feature(const_swap)] +#![feature(const_mut_refs)] +use std::{ + mem::{self, MaybeUninit}, + ptr, +}; + +const X: () = { + let mut ptr1 = &1; + let mut ptr2 = &2; + + // Swap them, bytewise. + unsafe { + ptr::swap_nonoverlapping( + &mut ptr1 as *mut _ as *mut MaybeUninit<u8>, + &mut ptr2 as *mut _ as *mut MaybeUninit<u8>, + mem::size_of::<&i32>(), + ); + } +}; + +fn main() { + X +} diff --git a/src/test/ui/consts/missing_span_in_backtrace.stderr b/src/test/ui/consts/missing_span_in_backtrace.stderr new file mode 100644 index 00000000000..9969d5b63e7 --- /dev/null +++ b/src/test/ui/consts/missing_span_in_backtrace.stderr @@ -0,0 +1,23 @@ +error[E0080]: evaluation of constant value failed +/rustc/xyz/library/core/src/ptr/mod.rs:929:14: inside `swap_nonoverlapping::<MaybeUninit<u8>>` at /rustc/xyz/library/core/src/ptr/mod.rs:929:14 +/rustc/xyz/library/core/src/ptr/mod.rs:948:9: inside `ptr::swap_nonoverlapping_simple_untyped::<MaybeUninit<u8>>` at /rustc/xyz/library/core/src/ptr/mod.rs:948:9 +--> /rustc/xyz/library/core/src/ptr/mod.rs:1139:9 +note: unable to copy parts of a pointer from memory at alloc6+0x1 +note: inside `std::ptr::read::<MaybeUninit<MaybeUninit<u8>>>` at /rustc/xyz/library/core/src/ptr/mod.rs:1139:9 +/rustc/xyz/library/core/src/mem/mod.rs:776:17: inside `mem::swap_simple::<MaybeUninit<MaybeUninit<u8>>>` at /rustc/xyz/library/core/src/mem/mod.rs:776:17 + | + ::: $DIR/missing_span_in_backtrace.rs:16:9 + | +LL | / ptr::swap_nonoverlapping( +LL | | &mut ptr1 as *mut _ as *mut MaybeUninit<u8>, +LL | | &mut ptr2 as *mut _ as *mut MaybeUninit<u8>, +LL | | mem::size_of::<&i32>(), +LL | | ); + | |_________- inside `X` at $DIR/missing_span_in_backtrace.rs:16:9 + | + = help: this code performed an operation that depends on the underlying bytes representing a pointer + = help: the absolute address of a pointer is not known at compile-time, so such operations are not supported + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0080`. diff --git a/src/test/ui/span/issue-71363.stderr b/src/test/ui/span/issue-71363.stderr index 04e2b46c317..c0268ec683f 100644 --- a/src/test/ui/span/issue-71363.stderr +++ b/src/test/ui/span/issue-71363.stderr @@ -7,6 +7,7 @@ error[E0277]: `MyError` doesn't implement `std::fmt::Display` = help: the trait `std::fmt::Display` is not implemented for `MyError` = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead note: required by a bound in `std::error::Error` +/rustc/xyz/library/core/src/error.rs:31:26: required by this bound in `std::error::Error` error[E0277]: `MyError` doesn't implement `Debug` --> $DIR/issue-71363.rs:4:6 @@ -17,6 +18,7 @@ error[E0277]: `MyError` doesn't implement `Debug` = help: the trait `Debug` is not implemented for `MyError` = note: add `#[derive(Debug)]` to `MyError` or manually `impl Debug for MyError` note: required by a bound in `std::error::Error` +/rustc/xyz/library/core/src/error.rs:31:18: required by this bound in `std::error::Error` help: consider annotating `MyError` with `#[derive(Debug)]` | 3 | #[derive(Debug)] |
