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