]>
Commit | Line | Data |
---|---|---|
96b40f8d MP |
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 | } |