1 /* { dg-do compile } */
2 /* { dg-options "-fdiagnostics-show-caret -std=c99" } */
3 
4 /* Tests of incorrect name initializers.
5    Verify that we get underlines and, where appropriate, fixit hints.  */
6 
7 struct foo
8 {
9   int foo;
10   int bar;
11 };
12 
13 union u
14 {
15   int color;
16   int shape;
17 };
18 
19 /* Old-style named initializers.  */
20 
21 struct foo old_style_f = {
22  foa: 1, /* { dg-error ".struct foo. has no member named .foa.; did you mean .foo." } */
23 /* { dg-begin-multiline-output "" }
24   foa: 1,
25   ^~~
26   foo
27    { dg-end-multiline-output "" } */
28 
29  this_does_not_match: 3 /* { dg-error ".struct foo. has no member named .this_does_not_match." } */
30 
31 /* { dg-begin-multiline-output "" }
32   this_does_not_match: 3
33   ^~~~~~~~~~~~~~~~~~~
34    { dg-end-multiline-output "" } */
35 };
36 
37 union u old_style_u = { colour: 3 }; /* { dg-error ".union u. has no member named .colour.; did you mean .color.?" } */
38 /* { dg-begin-multiline-output "" }
39  union u old_style_u = { colour: 3 };
40                          ^~~~~~
41                          color
42    { dg-end-multiline-output "" } */
43 
44 /* C99-style named initializers.  */
45 
46 struct foo c99_style_f = {
47   .foa = 1, /* { dg-error ".struct foo. has no member named .foa.; did you mean .foo." } */
48 /* { dg-begin-multiline-output "" }
49    .foa = 1,
50     ^~~
51     foo
52    { dg-end-multiline-output "" } */
53 
54   .this_does_not_match = 3 /* { dg-error ".struct foo. has no member named .this_does_not_match." } */
55 /* { dg-begin-multiline-output "" }
56    .this_does_not_match = 3
57     ^~~~~~~~~~~~~~~~~~~
58    { dg-end-multiline-output "" } */
59 };
60 
61 union u c99_style_u = { .colour=3 }; /* { dg-error ".union u. has no member named .colour.; did you mean .color.?" } */
62 /* { dg-begin-multiline-output "" }
63  union u c99_style_u = { .colour=3 };
64                           ^~~~~~
65                           color
66    { dg-end-multiline-output "" } */
67