diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/consts/issue-63952.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/ui/consts/issue-63952.rs b/src/test/ui/consts/issue-63952.rs new file mode 100644 index 000000000..5c83e6f45 --- /dev/null +++ b/src/test/ui/consts/issue-63952.rs @@ -0,0 +1,27 @@ +// Regression test for #63952, shouldn't hang. +// stderr-per-bitwidth + +#[repr(C)] +#[derive(Copy, Clone)] +struct SliceRepr { + ptr: *const u8, + len: usize, +} + +union SliceTransmute { + repr: SliceRepr, + slice: &'static [u8], +} + +// bad slice: length too big to even exist anywhere +const SLICE_WAY_TOO_LONG: &[u8] = unsafe { //~ ERROR: it is undefined behavior to use this value + SliceTransmute { + repr: SliceRepr { + ptr: &42, + len: usize::MAX, + }, + } + .slice +}; + +fn main() {} |