1 // { dg-do compile }
2 // { dg-options "-std=c++0x" }
3 
4 // opaque enum declarations
5 enum class E1;
6 enum class E2 : int;
7 enum class E3 : short;
8 enum E4 : int;
9 enum E5 : short;
10 
11 // can be repeated
12 enum class E1;
13 enum class E2 : int;
14 enum class E3 : short;
15 enum E4 : int;
16 enum E5 : short;
17 
18 // are complete so we can declare variables
19 E1 b1;
20 E2 b2;
21 E3 b3;
22 E4 b4;
23 E5 b5;
24 
25 //even with elaborated-type-specifiers
26 enum E1 a1;
27 enum E2 a2;
28 enum E3 a3;
29 enum E4 a4;
30 enum E5 a5;
31 
32 // and the list can be added later
33 enum class E1 { e11, e12 };
34 enum class E2 : int { e21, e22 };
35 enum class E3 : short {e31, e32 };
36 enum E4 : int { e41, e42 };
37 enum E5 : short { e51, e52 };
38 
39 // more repetitions allowed
40 enum class E1;
41 enum class E2 : int;
42 enum class E3 : short;
43 enum E4 : int;
44 enum E5 : short;
45 
46