diff options
| author | Ralf Jung <post@ralfj.de> | 2020-03-10 22:31:27 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2020-03-20 17:25:03 +0100 |
| commit | d9f60bcf67ea175ab3298608d8a94563e1ac0f6d (patch) | |
| tree | 2235226464268b99d1e1ce6f655c9969b91b8338 | |
| parent | 55c2cf2a3214cc3be11d9e27da5aa419653cac0c (diff) | |
| download | rust-d9f60bcf67ea175ab3298608d8a94563e1ac0f6d.tar.gz rust-d9f60bcf67ea175ab3298608d8a94563e1ac0f6d.zip | |
add a test for rustc_layout(debug)
| -rw-r--r-- | src/test/ui/layout/debug.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/layout/debug.stderr | 120 |
2 files changed, 127 insertions, 0 deletions
diff --git a/src/test/ui/layout/debug.rs b/src/test/ui/layout/debug.rs new file mode 100644 index 00000000000..64a02ee5a22 --- /dev/null +++ b/src/test/ui/layout/debug.rs @@ -0,0 +1,7 @@ +#![feature(never_type, rustc_attrs)] +#![crate_type = "lib"] + +enum E { Foo, Bar(!, i32, i32) } + +#[rustc_layout(debug)] +type Test = E; //~ ERROR: layout debugging diff --git a/src/test/ui/layout/debug.stderr b/src/test/ui/layout/debug.stderr new file mode 100644 index 00000000000..df8b70f3070 --- /dev/null +++ b/src/test/ui/layout/debug.stderr @@ -0,0 +1,120 @@ +error: layout debugging: LayoutDetails { + fields: Arbitrary { + offsets: [ + Size { + raw: 0, + }, + ], + memory_index: [ + 0, + ], + }, + variants: Multiple { + discr: Scalar { + value: Int( + I32, + false, + ), + valid_range: 0..=0, + }, + discr_kind: Tag, + discr_index: 0, + variants: [ + LayoutDetails { + fields: Arbitrary { + offsets: [], + memory_index: [], + }, + variants: Single { + index: 0, + }, + abi: Aggregate { + sized: true, + }, + largest_niche: None, + align: AbiAndPrefAlign { + abi: Align { + pow2: 0, + }, + pref: Align { + pow2: 3, + }, + }, + size: Size { + raw: 4, + }, + }, + LayoutDetails { + fields: Arbitrary { + offsets: [ + Size { + raw: 4, + }, + Size { + raw: 4, + }, + Size { + raw: 8, + }, + ], + memory_index: [ + 0, + 1, + 2, + ], + }, + variants: Single { + index: 1, + }, + abi: Uninhabited, + largest_niche: None, + align: AbiAndPrefAlign { + abi: Align { + pow2: 2, + }, + pref: Align { + pow2: 3, + }, + }, + size: Size { + raw: 12, + }, + }, + ], + }, + abi: Aggregate { + sized: true, + }, + largest_niche: Some( + Niche { + offset: Size { + raw: 0, + }, + scalar: Scalar { + value: Int( + I32, + false, + ), + valid_range: 0..=0, + }, + }, + ), + align: AbiAndPrefAlign { + abi: Align { + pow2: 2, + }, + pref: Align { + pow2: 3, + }, + }, + size: Size { + raw: 12, + }, +} + --> $DIR/debug.rs:7:1 + | +LL | type Test = E; + | ^^^^^^^^^^^^^^ + +error: aborting due to previous error + |
