annotate gcc/testsuite/gcc.dg/enum-incomplete-1.c @ 131:84e7813d76e9

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