| /* { dg-do compile } */ |
| /* { dg-options "-Wc++-compat" } */ |
| |
| struct s1 |
| { |
| enum e1 /* { dg-message "note: enum type defined here" } */ |
| { |
| A, /* { dg-message "note: enum constant defined here" } */ |
| B |
| } f1; |
| struct s2 /* { dg-message "note: struct defined here" } */ |
| { |
| struct s3 /* { dg-message "note: struct defined here" } */ |
| { |
| enum e1 f3; |
| struct s1 *p1; |
| struct s2 *p2; |
| struct s3 *p3; |
| } f2; |
| union u1 /* { dg-message "note: union defined here" } */ |
| { |
| int f4; |
| } f5; |
| struct s3 f6; |
| } f7; |
| struct s2 f8; |
| enum e1 f9; |
| }; |
| |
| struct s1 v1; |
| enum e1 v2; /* { dg-warning "not visible in C\[+\]\[+\]" } */ |
| struct s2 v3; /* { dg-warning "not visible in C\[+\]\[+\]" } */ |
| struct s3 v4; /* { dg-warning "not visible in C\[+\]\[+\]" } */ |
| union u1 v5; /* { dg-warning "not visible in C\[+\]\[+\]" } */ |
| int i = A; /* { dg-warning "not visible in C\[+\]\[+\]" } */ |