111
|
1 /* PR c/60257 */
|
|
2 /* { dg-do compile } */
|
|
3 /* { dg-options "-Wc++-compat -Woverride-init" } */
|
|
4 /* { dg-prune-output ".*near initialization for.*" } */
|
|
5
|
|
6 enum E1 { A };
|
|
7 enum E2 { B };
|
|
8
|
|
9 struct S
|
|
10 {
|
|
11 enum E1 e: 3;
|
|
12 };
|
|
13
|
|
14 struct S s[] =
|
|
15 {
|
|
16 { B } /* { dg-warning "5:enum conversion in initialization is invalid in C\[+\]\[+\]" } */
|
|
17 };
|
|
18
|
|
19 union U {
|
|
20 int i;
|
|
21 long long int l;
|
|
22 };
|
|
23
|
|
24 struct R {
|
|
25 int a;
|
|
26 };
|
|
27
|
|
28 void
|
|
29 foo (int i)
|
|
30 {
|
|
31 union U u = { .i = ++i, .l = 1 }; /* { dg-warning "32:initialized field with side-effects overwritten" } */
|
|
32 union U u2 = { .i = 1, .l = 3 }; /* { dg-warning "31:initialized field overwritten" } */
|
|
33 int a[] = { i++, [0] = 1 }; /* { dg-warning "26:initialized field with side-effects overwritten" } */
|
|
34 int a2[] = { i, [0] = 1 }; /* { dg-warning "25:initialized field overwritten" } */
|
|
35 struct R r = { 1, .a = 2 }; /* { dg-warning "26:initialized field overwritten" } */
|
|
36 struct R r2 = { ++i, .a = 2 }; /* { dg-warning "29:initialized field with side-effects overwritten" } */
|
|
37 }
|