diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2021-11-16 09:14:22 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-16 09:14:22 +0900 |
| commit | fff9055afb8b7d3eb7a2921ec3fa05aa99b318e5 (patch) | |
| tree | 9d0836de069d673769e8419f6bab732ff02b7384 /src/test | |
| parent | fb96ecc37a99def7236a683b1f39369e701ed765 (diff) | |
| parent | 94ca0b392df7c0f551c136394bf3456bee041357 (diff) | |
| download | rust-fff9055afb8b7d3eb7a2921ec3fa05aa99b318e5.tar.gz rust-fff9055afb8b7d3eb7a2921ec3fa05aa99b318e5.zip | |
Rollup merge of #90892 - RalfJung:miri-partial-ptr-copy, r=oli-obk
fix ICE on Miri/CTFE copy of half a pointer Fixes https://github.com/rust-lang/miri/issues/1910 r? `````@oli-obk`````
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/consts/issue-miri-1910.rs | 12 | ||||
| -rw-r--r-- | src/test/ui/consts/issue-miri-1910.stderr | 26 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/consts/issue-miri-1910.rs b/src/test/ui/consts/issue-miri-1910.rs new file mode 100644 index 00000000000..20efa145dbe --- /dev/null +++ b/src/test/ui/consts/issue-miri-1910.rs @@ -0,0 +1,12 @@ +// error-pattern unable to turn pointer into raw bytes +#![feature(const_ptr_read)] +#![feature(const_ptr_offset)] + +const C: () = unsafe { + let foo = Some(&42 as *const i32); + let one_and_a_half_pointers = std::mem::size_of::<*const i32>()/2*3; + (&foo as *const _ as *const u8).add(one_and_a_half_pointers).read(); +}; + +fn main() { +} diff --git a/src/test/ui/consts/issue-miri-1910.stderr b/src/test/ui/consts/issue-miri-1910.stderr new file mode 100644 index 00000000000..e2f4ef63588 --- /dev/null +++ b/src/test/ui/consts/issue-miri-1910.stderr @@ -0,0 +1,26 @@ +error: any use of this value will cause an error + --> $SRC_DIR/core/src/ptr/mod.rs:LL:COL + | +LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | | + | unable to turn pointer into raw bytes + | inside `std::ptr::read::<u8>` at $SRC_DIR/core/src/ptr/mod.rs:LL:COL + | inside `ptr::const_ptr::<impl *const u8>::read` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL + | inside `C` at $DIR/issue-miri-1910.rs:8:5 + | + ::: $DIR/issue-miri-1910.rs:5:1 + | +LL | / const C: () = unsafe { +LL | | let foo = Some(&42 as *const i32); +LL | | let one_and_a_half_pointers = std::mem::size_of::<*const i32>()/2*3; +LL | | (&foo as *const _ as *const u8).add(one_and_a_half_pointers).read(); +LL | | }; + | |__- + | + = note: `#[deny(const_err)]` on by default + = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! + = note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800> + +error: aborting due to previous error + |
