OSDN Git Service

Update gcc.dg/atomic-flag.c test for non-boolean TAS targets.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / Wcxx-compat-5.c
1 /* { dg-do compile } */
2 /* { dg-options "-Wc++-compat" } */
3 enum E1 { A, B, C };
4 enum E2 { D, E, F };
5
6 int f1() { return A; }
7
8 struct s { enum E1 e1 : 3; enum E2 e2 : 4; };
9
10 enum E1
11 f2 (int i, struct s sv, struct s *pv)
12 {
13   int a;
14   enum E1 e1 = B;
15   enum E2 e2 = E;
16   switch (i)
17     {
18     case 0:
19       return A;
20     case 1:
21       return D;                 /* { dg-warning "invalid in C\[+\]\[+\]" } */
22     case 2:
23       return 0;                 /* { dg-warning "invalid in C\[+\]\[+\]" } */
24     case 3:
25       return (enum E1) 1;
26     case 4:
27       return (enum E2) 2;       /* { dg-warning "invalid in C\[+\]\[+\]" } */
28     case 5:
29       return e1;
30     case 6:
31       return e2;                /* { dg-warning "invalid in C\[+\]\[+\]" } */
32     case 7:
33       return pv->e1;
34     case 8:
35       return sv.e1;
36     case 9:
37       return pv->e2;            /* { dg-warning "invalid in C\[+\]\[+\]" } */
38     case 10:
39       return sv.e2;             /* { dg-warning "invalid in C\[+\]\[+\]" } */
40     case 11:
41       return 1, A;
42     default:
43       return C;
44     }
45 }