]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/Wcxx-compat-6.c
Update copyright years.
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / Wcxx-compat-6.c
CommitLineData
81f40b79
ILT
1/* { dg-do compile } */
2/* { dg-options "-Wc++-compat" } */
3enum E1 { A, B, C };
4enum E2 { D, E, F };
5
6enum E1 v1a = A;
7enum E1 v1b = D; /* { dg-warning "invalid in C\[+\]\[+\]" } */
8enum E1 v1c = 0; /* { dg-warning "invalid in C\[+\]\[+\]" } */
9enum E1 v1d = (enum E1) 0;
10enum E1 v1e = (enum E2) 0; /* { dg-warning "invalid in C\[+\]\[+\]" } */
11
12enum E2 v2a;
13
14enum E1 a1[] =
15{
16 A,
17 D, /* { dg-warning "invalid in C\[+\]\[+\]" } */
18 0, /* { dg-warning "invalid in C\[+\]\[+\]" } */
19 (enum E1) 0,
20 (enum E2) 0, /* { dg-warning "invalid in C\[+\]\[+\]" } */
21 A
22};
23
24struct s1
25{
26 enum E1 e1;
27};
28
29struct s1 a2[] =
30{
31 { A },
32 { D }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
33 { 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
34 { (enum E1) 0 },
35 { (enum E2) 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
36 { A }
37};
38
39struct s1 a3[] =
40{
41 [ 5 ] = { .e1 = A },
42 [ 4 ] = { .e1 = D }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
43 [ 3 ] = { .e1 = 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
44 [ 2 ] = { .e1 = (enum E1) 0 },
45 [ 1 ] = { .e1 = (enum E2) 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
46 [ 0 ] = { .e1 = A }
47};
48
49struct s2
50{
51 enum E1 e1 : 3;
52};
53
54struct s2 a4[] =
55{
56 { A },
57 { D }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
58 { 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
59 { (enum E1) 0 },
60 { (enum E2) 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
61 { A }
62};
63
64struct s2 a5[] =
65{
66 [ 5 ] = { .e1 = A },
67 [ 4 ] = { .e1 = D }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
68 [ 3 ] = { .e1 = 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
69 [ 2 ] = { .e1 = (enum E1) 0 },
70 [ 1 ] = { .e1 = (enum E2) 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
71 [ 0 ] = { .e1 = A }
72};
73
74void
75f(enum E1 e1, enum E2 e2, struct s1 vs1, struct s1 *vp1)
76{
77 enum E1 va1[] = {
78 e1,
79 e2, /* { dg-warning "invalid in C\[+\]\[+\]" } */
80 v1a,
81 v2a, /* { dg-warning "invalid in C\[+\]\[+\]" } */
82 vs1.e1,
83 vp1->e1,
84 e1 ? e1 : e1,
85 (0, e1)
86 };
87
88 struct s1 va2[] = {
89 { e1 },
90 { e2 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
91 { v1a },
92 { v2a }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
93 { vs1.e1 },
94 { vp1->e1 },
95 { e1 ? e1 : e1 },
96 { (0, e1) }
97 };
98
99 struct s2 va3[] = {
100 { e1 },
101 { e2 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
102 { v1a },
103 { v2a }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
104 { vs1.e1 },
105 { vp1->e1 },
106 { e1 ? e1 : e1 },
107 { (0, e1) }
108 };
109}
110
111/* Match all extra informative notes. */
d7ff7ae5 112/* { dg-message "near initialization for" "expected" { target *-*-* } 0 } */