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 }) };