summaryrefslogtreecommitdiffstats
path: root/src/test/ui/layout
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:32 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:32 +0000
commit4547b622d8d29df964fa2914213088b148c498fc (patch)
tree9fc6b25f3c3add6b745be9a2400a6e96140046e9 /src/test/ui/layout
parentReleasing progress-linux version 1.66.0+dfsg1-1~progress7.99u1. (diff)
downloadrustc-4547b622d8d29df964fa2914213088b148c498fc.tar.xz
rustc-4547b622d8d29df964fa2914213088b148c498fc.zip
Merging upstream version 1.67.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/layout')
-rw-r--r--src/test/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr20
-rw-r--r--src/test/ui/layout/valid_range_oob.rs15
-rw-r--r--src/test/ui/layout/valid_range_oob.stderr6
3 files changed, 31 insertions, 10 deletions
diff --git a/src/test/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr b/src/test/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr
index bfabe2d12..20d4c418e 100644
--- a/src/test/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr
+++ b/src/test/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr
@@ -370,23 +370,23 @@ error: layout_of(NicheFirst) = Layout {
pref: $PREF_ALIGN,
},
abi: ScalarPair(
- Initialized {
+ Union {
value: Int(
I8,
false,
),
- valid_range: 0..=4,
},
- Union {
+ Initialized {
value: Int(
I8,
false,
),
+ valid_range: 0..=4,
},
),
fields: Arbitrary {
offsets: [
- Size(0 bytes),
+ Size(1 bytes),
],
memory_index: [
0,
@@ -394,7 +394,7 @@ error: layout_of(NicheFirst) = Layout {
},
largest_niche: Some(
Niche {
- offset: Size(0 bytes),
+ offset: Size(1 bytes),
value: Int(
I8,
false,
@@ -429,29 +429,29 @@ error: layout_of(NicheFirst) = Layout {
I8,
false,
),
- valid_range: 0..=2,
+ valid_range: 0..=255,
},
Initialized {
value: Int(
I8,
false,
),
- valid_range: 0..=255,
+ valid_range: 0..=2,
},
),
fields: Arbitrary {
offsets: [
- Size(0 bytes),
Size(1 bytes),
+ Size(0 bytes),
],
memory_index: [
- 0,
1,
+ 0,
],
},
largest_niche: Some(
Niche {
- offset: Size(0 bytes),
+ offset: Size(1 bytes),
value: Int(
I8,
false,
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 000000000..74aa47fe4
--- /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 000000000..7398f0164
--- /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