blob: 06c247c2e5120e5c96e3a8bf7d6399d8edd0fabd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/* Test for uses of incomplete enum variables: should be allowed just
when incomplete structs are allowed. PR 32295. */
/* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do compile } */
/* { dg-options "" } */
extern enum e ve;
extern struct s vs;
void *p;
int
f0 (int i)
{
ve; /* { dg-error "incomplete" } */
vs; /* { dg-error "incomplete" } */
(void) ve;
(void) vs;
(void) (i ? ve : ve); /* { dg-error "incomplete" } */
(void) (i ? vs : vs); /* { dg-error "incomplete" } */
(void) (ve = ve); /* { dg-error "incomplete" } */
(void) (vs = vs); /* { dg-error "incomplete" } */
(void) ve, (void) ve;
(void) vs, (void) vs;
p = &ve;
p = &vs;
(void) sizeof (ve); /* { dg-error "incomplete" } */
(void) sizeof (vs); /* { dg-error "incomplete" } */
typeof (ve) *pe;
typeof (vs) *ps;
/* ??? alignof should probably not be accepted here. */
(void) __alignof (ve);
(void) __alignof (vs);
(void) (ve + i); /* { dg-error "incomplete" } */
(void) (i * ve); /* { dg-error "incomplete" } */
(void) (i / ve); /* { dg-error "incomplete" } */
(void) (ve - i); /* { dg-error "incomplete" } */
(void) (ve << i); /* { dg-error "incomplete" } */
(void) (i >> ve); /* { dg-error "incomplete" } */
(void) (ve < i); /* { dg-error "incomplete" } */
(void) (ve <= i); /* { dg-error "incomplete" } */
(void) (i > ve); /* { dg-error "incomplete" } */
(void) (i >= ve); /* { dg-error "incomplete" } */
(void) (ve == i); /* { dg-error "incomplete" } */
(void) (i != ve); /* { dg-error "incomplete" } */
(void) (ve & i); /* { dg-error "incomplete" } */
(void) (ve ^ i); /* { dg-error "incomplete" } */
(void) (i | ve); /* { dg-error "incomplete" } */
(void) (i && ve); /* { dg-error "incomplete" } */
(void) (ve || i); /* { dg-error "incomplete" } */
(void) -ve; /* { dg-error "incomplete" } */
(void) +ve; /* { dg-error "incomplete" } */
(void) ~ve; /* { dg-error "incomplete" } */
(void) !ve; /* { dg-error "incomplete" } */
(void) --ve; /* { dg-error "incomplete" } */
(void) ++ve; /* { dg-error "incomplete" } */
(void) ve--; /* { dg-error "incomplete" } */
(void) ve++; /* { dg-error "incomplete" } */
i = ve; /* { dg-error "incomplete" } */
i *= ve; /* { dg-error "incomplete" } */
i /= ve; /* { dg-error "incomplete" } */
i %= ve; /* { dg-error "incomplete" } */
i += ve; /* { dg-error "incomplete" } */
i -= ve; /* { dg-error "incomplete" } */
i <<= ve; /* { dg-error "incomplete" } */
i >>= ve; /* { dg-error "incomplete" } */
i &= ve; /* { dg-error "incomplete" } */
i ^= ve; /* { dg-error "incomplete" } */
i |= ve; /* { dg-error "incomplete" } */
(void) (ve ? 1 : 1); /* { dg-error "incomplete" } */
(void) (int) ve; /* { dg-error "incomplete" } */
f0 (ve); /* { dg-error "incomplete" } */
if (ve) /* { dg-error "incomplete" } */
;
do
;
while (ve); /* { dg-error "incomplete" } */
while (ve) /* { dg-error "incomplete" } */
;
_Bool b = ve; /* { dg-error "incomplete" } */
float f = ve; /* { dg-error "incomplete" } */
switch (ve) /* { dg-error "incomplete" } */
;
for (; ve;) /* { dg-error "incomplete" } */
;
return ve; /* { dg-error "incomplete" } */
}
|