* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / forw_enum5.C
blobd1d6230ee992af33e55e9876c684c7efc760e7dc
1 // { dg-do compile { target c++11 } }
3 namespace one
5     struct S
6     {
7         enum { A = 1, B = 2 };
8         struct T
9         {
10             enum { B = 102 };
12             enum class E1;
13             enum E2 : int;
14         };
15     };
17     enum class S::T::E1 { A1 = A, B1 = B, C1 };
18     enum S::T::E2 : int { A1 = A, B1 = B, C1 };
20     static_assert(int(S::T::E1::A1) == 1, "error");
21     static_assert(int(S::T::E1::B1) == 102, "error");
22     static_assert(int(S::T::E1::C1) == 103, "error");
24     static_assert(int(S::T::E2::A1) == 1, "error");
25     static_assert(int(S::T::E2::B1) == 102, "error");
26     static_assert(int(S::T::E2::C1) == 103, "error");
27     static_assert(int(S::T::A1) == 1, "error");
28     static_assert(int(S::T::B1) == 102, "error");
29     static_assert(int(S::T::C1) == 103, "error");
33 namespace two
35     namespace S
36     {
37         enum { A = 1, B = 2 };
38         namespace T
39         {
40             enum { B = 102 };
42             enum class E1;
43             enum E2 : int;
44         }
45     }
47     enum class S::T::E1 { A1 = A, B1 = B, C1 };
48     enum S::T::E2 : int { A1 = A, B1 = B, C1 };
50     static_assert(int(S::T::E1::A1) == 1, "error");
51     static_assert(int(S::T::E1::B1) == 102, "error");
52     static_assert(int(S::T::E1::C1) == 103, "error");
54     static_assert(int(S::T::E2::A1) == 1, "error");
55     static_assert(int(S::T::E2::B1) == 102, "error");
56     static_assert(int(S::T::E2::C1) == 103, "error");
57     static_assert(int(S::T::A1) == 1, "error");
58     static_assert(int(S::T::B1) == 102, "error");
59     static_assert(int(S::T::C1) == 103, "error");