1 // Copyright 2019 The Fuchsia Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #![feature(repr_align_enum)]
6
7 #[macro_use]
8 extern crate zerocopy;
9
main()10 fn main() {}
11
12 //
13 // Generic errors
14 //
15
16 #[derive(FromBytes)]
17 #[repr("foo")]
18 enum Generic1 {
19 A,
20 }
21
22 #[derive(FromBytes)]
23 #[repr(foo)]
24 enum Generic2 {
25 A,
26 }
27
28 #[derive(FromBytes)]
29 #[repr(transparent)]
30 enum Generic3 {
31 A,
32 }
33
34 #[derive(FromBytes)]
35 #[repr(u8, u16)]
36 enum Generic4 {
37 A,
38 }
39
40 #[derive(FromBytes)]
41 enum Generic5 {
42 A,
43 }
44
45 //
46 // FromBytes errors
47 //
48
49 #[derive(FromBytes)]
50 #[repr(C)]
51 enum FromBytes1 {
52 A,
53 }
54
55 #[derive(FromBytes)]
56 #[repr(usize)]
57 enum FromBytes2 {
58 A,
59 }
60
61 #[derive(FromBytes)]
62 #[repr(isize)]
63 enum FromBytes3 {
64 A,
65 }
66
67 #[derive(FromBytes)]
68 #[repr(u32)]
69 enum FromBytes4 {
70 A,
71 }
72
73 #[derive(FromBytes)]
74 #[repr(i32)]
75 enum FromBytes5 {
76 A,
77 }
78
79 #[derive(FromBytes)]
80 #[repr(u64)]
81 enum FromBytes6 {
82 A,
83 }
84
85 #[derive(FromBytes)]
86 #[repr(i64)]
87 enum FromBytes7 {
88 A,
89 }
90
91 //
92 // Unaligned errors
93 //
94
95 #[derive(Unaligned)]
96 #[repr(C)]
97 enum Unaligned1 {
98 A,
99 }
100
101 #[derive(Unaligned)]
102 #[repr(u16)]
103 enum Unaligned2 {
104 A,
105 }
106
107 #[derive(Unaligned)]
108 #[repr(i16)]
109 enum Unaligned3 {
110 A,
111 }
112
113 #[derive(Unaligned)]
114 #[repr(u32)]
115 enum Unaligned4 {
116 A,
117 }
118
119 #[derive(Unaligned)]
120 #[repr(i32)]
121 enum Unaligned5 {
122 A,
123 }
124
125 #[derive(Unaligned)]
126 #[repr(u64)]
127 enum Unaligned6 {
128 A,
129 }
130
131 #[derive(Unaligned)]
132 #[repr(i64)]
133 enum Unaligned7 {
134 A,
135 }
136
137 #[derive(Unaligned)]
138 #[repr(usize)]
139 enum Unaligned8 {
140 A,
141 }
142
143 #[derive(Unaligned)]
144 #[repr(isize)]
145 enum Unaligned9 {
146 A,
147 }
148
149 #[derive(Unaligned)]
150 #[repr(u8, align(2))]
151 enum Unaligned10 {
152 A,
153 }
154
155 #[derive(Unaligned)]
156 #[repr(i8, align(2))]
157 enum Unaligned11 {
158 A,
159 }
160