annotate gcc/testsuite/g++.dg/cpp0x/forw_enum6.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 enum class E1 : int; // { dg-message "previous definition" }
kono
parents:
diff changeset
4 enum E1 : int; // { dg-error "scoped/unscoped mismatch" }
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 enum E2 : int; // { dg-message "previous definition" }
kono
parents:
diff changeset
7 enum class E2 : int; // { dg-error "scoped/unscoped mismatch" }
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 enum struct E3 : int;
kono
parents:
diff changeset
10 enum class E3 : int; //ok
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 enum class E4 : int; // { dg-message "previous definition" }
kono
parents:
diff changeset
13 enum class E4 : long; // { dg-error "different underlying type" }
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 enum E5 : int; // { dg-message "previous definition" }
kono
parents:
diff changeset
16 enum E5 : long; // { dg-error "different underlying type" }
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 enum E6 : int;
kono
parents:
diff changeset
19 enum E6 : int; //ok
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 enum class E7;
kono
parents:
diff changeset
22 enum class E7 : int; //ok
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 enum class E3 e3; // { dg-error "scoped enum must not use" }
kono
parents:
diff changeset
25 enum struct E3 e4; // { dg-error "scoped enum must not use" }
kono
parents:
diff changeset
26 enum E5 : int e5; // { dg-error "expected|invalid type" }
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 enum E6 : int { a, b, c }; // { dg-message "previous definition" }
kono
parents:
diff changeset
29 enum E6 : int { a, b, c }; // { dg-error "multiple definition" }
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 enum class E7 { }; // { dg-message "previous definition" }
kono
parents:
diff changeset
32 enum class E7 { a, b, c }; // { dg-error "multiple definition" }
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 namespace N1
kono
parents:
diff changeset
35 {
kono
parents:
diff changeset
36 struct D;
kono
parents:
diff changeset
37 enum class E6;
kono
parents:
diff changeset
38 enum E7 : int;
kono
parents:
diff changeset
39 }
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 enum class N1::E6; // { dg-error "must use a simple identifier" }
kono
parents:
diff changeset
42 enum N1::E6 e6_1; //ok
kono
parents:
diff changeset
43 enum ::N1::E6 e6_2; //ok
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 namespace N2
kono
parents:
diff changeset
46 {
kono
parents:
diff changeset
47 enum class N1::E6 { e1, e2, e3 }; // { dg-error "does not enclose" }
kono
parents:
diff changeset
48 enum N1::E7 : int { e1, e2, e3 }; // { dg-error "does not enclose" }
kono
parents:
diff changeset
49 }
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 enum class N1::E6 { e1, e2, e3 };
kono
parents:
diff changeset
52 enum N1::E7 : int { e1, e2, e3 };
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 struct S1
kono
parents:
diff changeset
55 {
kono
parents:
diff changeset
56 struct D;
kono
parents:
diff changeset
57 enum class E6;
kono
parents:
diff changeset
58 enum E7 : int;
kono
parents:
diff changeset
59 };
kono
parents:
diff changeset
60
kono
parents:
diff changeset
61 enum class S1::E6; // { dg-error "must use a simple identifier" }
kono
parents:
diff changeset
62 enum S1::E6 e6_3; //ok
kono
parents:
diff changeset
63 enum ::S1::E6 e6_4; //ok
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 struct S2
kono
parents:
diff changeset
66 {
kono
parents:
diff changeset
67 enum class S1::E6 { e1, e2, e3 }; // { dg-error "does not enclose" }
kono
parents:
diff changeset
68 enum S1::E7 : int { e1, e2, e3 }; // { dg-error "does not enclose" }
kono
parents:
diff changeset
69 };
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 enum class S1::E6 { e1, e2, e3 };
kono
parents:
diff changeset
72 enum S1::E7 : int { e1, e2, e3 };
kono
parents:
diff changeset
73