From 9b6f8e500c2d2dedfa838b18b93952486c12b6f5 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Mon, 7 Nov 2022 10:26:23 +0000 Subject: [PATCH] Add a test for OOB ranges --- src/test/ui/layout/valid_range_oob.rs | 15 +++++++++++++++ src/test/ui/layout/valid_range_oob.stderr | 6 ++++++ 2 files changed, 21 insertions(+) create mode 100644 src/test/ui/layout/valid_range_oob.rs create mode 100644 src/test/ui/layout/valid_range_oob.stderr diff --git a/src/test/ui/layout/valid_range_oob.rs b/src/test/ui/layout/valid_range_oob.rs new file mode 100644 index 00000000000..74aa47fe405 --- /dev/null +++ b/src/test/ui/layout/valid_range_oob.rs @@ -0,0 +1,15 @@ +// failure-status: 101 +// normalize-stderr-test "note: .*\n\n" -> "" +// normalize-stderr-test "thread 'rustc' panicked.*\n" -> "" +// rustc-env:RUST_BACKTRACE=0 + +#![feature(rustc_attrs)] + +#[rustc_layout_scalar_valid_range_end(257)] +struct Foo(i8); + +// Need to do in a constant, as runtime codegen +// does not compute the layout of `Foo` in check builds. +const FOO: Foo = unsafe { Foo(1) }; + +fn main() {} diff --git a/src/test/ui/layout/valid_range_oob.stderr b/src/test/ui/layout/valid_range_oob.stderr new file mode 100644 index 00000000000..7398f01643f --- /dev/null +++ b/src/test/ui/layout/valid_range_oob.stderr @@ -0,0 +1,6 @@ +error: internal compiler error: unexpected panic + +query stack during panic: +#0 [layout_of] computing layout of `Foo` +#1 [eval_to_allocation_raw] const-evaluating + checking `FOO` +end of query stack