Viewing file: Wcxx-compat-4.c (1007 B) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-options "-Wc++-compat" } */ enum E1 { A, B, C }; enum E2 { D, E, F };
enum E1 g1; enum E2 g2;
void f1 () { int a; int d; enum E1 e1; enum E2 e2; a = A; a = !B; d = E; e1 = A; e1 = D; /* { dg-warning "invalid in C\[+\]\[+\]" } */ e1 = 0; /* { dg-warning "invalid in C\[+\]\[+\]" } */ e1 = (enum E1) 0; e1 = (enum E2) 0; /* { dg-warning "invalid in C\[+\]\[+\]" } */ e1 = e2; /* { dg-warning "invalid in C\[+\]\[+\]" } */ e1 = g1; e1 = g2; /* { dg-warning "invalid in C\[+\]\[+\]" } */ e2 = A; /* { dg-warning "invalid in C\[+\]\[+\]" } */ e2 = D; }
struct s { enum E1 e1 : 3; };
void f2 (struct s sv) { sv.e1 = A; sv.e1 = D; /* { dg-warning "invalid in C\[+\]\[+\]" } */ g1 = sv.e1; g2 = sv.e1; /* { dg-warning "invalid in C\[+\]\[+\]" } */ }
void f3 (struct s *pv) { pv->e1 = A; pv->e1 = D; /* { dg-warning "invalid in C\[+\]\[+\]" } */ g1 = pv->e1; g2 = pv->e1; /* { dg-warning "invalid in C\[+\]\[+\]" } */ }
|