summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/enum-redef-1.c
blob: b3fa6cbf8f112052ce2d86943fc4450e1bf52d60 (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
enum a { A };
enum a { B }; /* { dg-bogus "nested redefinition" } */
/* { dg-error "redeclaration of 'enum a'" "" { target *-*-* } .-1 } */

enum empty {}; /* { dg-error "empty enum is invalid" } */
enum empty {}; /* { dg-bogus "nested redefinition" } */
/* { dg-error "empty enum is invalid" "" { target *-*-* } .-1 } */

enum nested_first {
  C1 = sizeof(enum nested_first { C1a }), /* { dg-error "nested redefinition of 'enum nested_first" } */
  C2 = sizeof(enum nested_first { C2a }) /* { dg-error "redeclaration of 'enum nested_first'" "" } */
};

enum nested_second {
  D1,
  D2 = sizeof(enum nested_second { D2a }), /* { dg-error "nested redefinition of 'enum nested_second" } */
  D3 = sizeof(enum nested_second { D3a }) /* { dg-error "redeclaration of 'enum nested_second'" "" } */
};

enum nested_repeat { E };
enum nested_repeat { /* { dg-error "redeclaration of 'enum nested_repeat'" "" } */
  F = sizeof(enum nested_repeat { Fa }) /* { dg-error "nested redefinition of 'enum nested_repeat" } */
};

enum nested_empty {
  G1 = sizeof(enum nested_empty {}), /* { dg-error "nested redefinition of 'enum nested_empty" } */
  /* { dg-error "empty enum is invalid" "" { target *-*-* } .-1 } */
  G2 = sizeof(enum nested_empty { G2a })
};