1// Matching
2enum E1 {
3  E1Enumerator1,
4  E1Enumerator2 = 3,
5  E1Enumerator3
6} x1;
7
8// Value mismatch
9enum E2 {
10  E2Enumerator1,
11  E2Enumerator2 = 3,
12  E2Enumerator3
13} x2;
14
15// Name mismatch
16enum E3 {
17  E3Enumerator1,
18  E3Enumerator2 = 3,
19  E3Enumerator3
20} x3;
21
22// Missing enumerator
23enum E4 {
24  E4Enumerator1,
25  E4Enumerator2,
26  E4Enumerator3
27} x4;
28
29// Extra enumerator
30enum E5 {
31  E5Enumerator1,
32  E5Enumerator2,
33  E5Enumerator3
34} x5;
35
36// Matching, with typedef
37typedef enum {
38  E6Enumerator1,
39  E6Enumerator2
40} E6;
41
42E6 x6;
43