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