1 /* Test for uses of incomplete enum variables: should be allowed just
2 when incomplete structs are allowed. PR 32295. */
3 /* Origin: Joseph Myers <joseph@codesourcery.com> */
4 /* { dg-do compile } */
5 /* { dg-options "" } */
14 ve
; /* { dg-error "incomplete" } */
15 vs
; /* { dg-error "incomplete" } */
18 (void) (i
? ve
: ve
); /* { dg-error "incomplete" } */
19 (void) (i
? vs
: vs
); /* { dg-error "incomplete" } */
20 (void) (ve
= ve
); /* { dg-error "incomplete" } */
21 (void) (vs
= vs
); /* { dg-error "incomplete" } */
26 (void) sizeof (ve
); /* { dg-error "incomplete" } */
27 (void) sizeof (vs
); /* { dg-error "incomplete" } */
30 /* ??? alignof should probably not be accepted here. */
31 (void) __alignof (ve
);
32 (void) __alignof (vs
);
33 (void) (ve
+ i
); /* { dg-error "incomplete" } */
34 (void) (i
* ve
); /* { dg-error "incomplete" } */
35 (void) (i
/ ve
); /* { dg-error "incomplete" } */
36 (void) (ve
- i
); /* { dg-error "incomplete" } */
37 (void) (ve
<< i
); /* { dg-error "incomplete" } */
38 (void) (i
>> ve
); /* { dg-error "incomplete" } */
39 (void) (ve
< i
); /* { dg-error "incomplete" } */
40 (void) (ve
<= i
); /* { dg-error "incomplete" } */
41 (void) (i
> ve
); /* { dg-error "incomplete" } */
42 (void) (i
>= ve
); /* { dg-error "incomplete" } */
43 (void) (ve
== i
); /* { dg-error "incomplete" } */
44 (void) (i
!= ve
); /* { dg-error "incomplete" } */
45 (void) (ve
& i
); /* { dg-error "incomplete" } */
46 (void) (ve
^ i
); /* { dg-error "incomplete" } */
47 (void) (i
| ve
); /* { dg-error "incomplete" } */
48 (void) (i
&& ve
); /* { dg-error "incomplete" } */
49 (void) (ve
|| i
); /* { dg-error "incomplete" } */
50 (void) -ve
; /* { dg-error "incomplete" } */
51 (void) +ve
; /* { dg-error "incomplete" } */
52 (void) ~ve
; /* { dg-error "incomplete" } */
53 (void) !ve
; /* { dg-error "incomplete" } */
54 (void) --ve
; /* { dg-error "incomplete" } */
55 (void) ++ve
; /* { dg-error "incomplete" } */
56 (void) ve
--; /* { dg-error "incomplete" } */
57 (void) ve
++; /* { dg-error "incomplete" } */
58 i
= ve
; /* { dg-error "incomplete" } */
59 i
*= ve
; /* { dg-error "incomplete" } */
60 i
/= ve
; /* { dg-error "incomplete" } */
61 i
%= ve
; /* { dg-error "incomplete" } */
62 i
+= ve
; /* { dg-error "incomplete" } */
63 i
-= ve
; /* { dg-error "incomplete" } */
64 i
<<= ve
; /* { dg-error "incomplete" } */
65 i
>>= ve
; /* { dg-error "incomplete" } */
66 i
&= ve
; /* { dg-error "incomplete" } */
67 i
^= ve
; /* { dg-error "incomplete" } */
68 i
|= ve
; /* { dg-error "incomplete" } */
69 (void) (ve
? 1 : 1); /* { dg-error "incomplete" } */
70 (void) (int) ve
; /* { dg-error "incomplete" } */
71 f0 (ve
); /* { dg-error "incomplete" } */
72 if (ve
) /* { dg-error "incomplete" } */
76 while (ve
); /* { dg-error "incomplete" } */
77 while (ve
) /* { dg-error "incomplete" } */
79 _Bool b
= ve
; /* { dg-error "incomplete" } */
80 float f
= ve
; /* { dg-error "incomplete" } */
81 switch (ve
) /* { dg-error "incomplete" } */
83 for (; ve
;) /* { dg-error "incomplete" } */
85 return ve
; /* { dg-error "incomplete" } */