]> git.lizzy.rs Git - rust.git/blob - src/test/ui/structs-enums/enum-discrim-autosizing.rs
Rollup merge of #89468 - FabianWolff:issue-89358, r=jackh726
[rust.git] / src / test / ui / structs-enums / enum-discrim-autosizing.rs
1 // run-pass
2 #![allow(dead_code)]
3 #![allow(overflowing_literals)]
4
5 use std::mem::size_of;
6
7 enum Ei8 {
8     Ai8 = -1,
9     Bi8 = 0
10 }
11
12 enum Eu8 {
13     Au8 = 0,
14     Bu8 = 0x80
15 }
16
17 enum Ei16 {
18     Ai16 = -1,
19     Bi16 = 0x80
20 }
21
22 enum Eu16 {
23     Au16 = 0,
24     Bu16 = 0x8000
25 }
26
27 enum Ei32 {
28     Ai32 = -1,
29     Bi32 = 0x8000
30 }
31
32 enum Eu32 {
33     Au32 = 0,
34     Bu32 = 0x8000_0000
35 }
36
37 enum Ei64 {
38     Ai64 = -1,
39     Bi64 = 0x8000_0000
40 }
41
42 pub fn main() {
43     assert_eq!(size_of::<Ei8>(), 1);
44     assert_eq!(size_of::<Eu8>(), 1);
45     assert_eq!(size_of::<Ei16>(), 2);
46     assert_eq!(size_of::<Eu16>(), 2);
47     assert_eq!(size_of::<Ei32>(), 4);
48     assert_eq!(size_of::<Eu32>(), 4);
49     #[cfg(target_pointer_width = "64")]
50     assert_eq!(size_of::<Ei64>(), 8);
51     #[cfg(target_pointer_width = "32")]
52     assert_eq!(size_of::<Ei64>(), 4);
53 }