/* { dg-do compile } */
/* { dg-options "-Wc++-compat" } */
struct A {}; /* { dg-warning "empty struct has size 0 in C" } */
union B {}; /* { dg-warning "empty union has size 0 in C" } */
struct C { struct D {}; int x; }; /* { dg-warning "empty struct has size 0 in C|declaration does not declare anything" } */
struct E { union F {}; int x; }; /* { dg-warning "empty union has size 0 in C|declaration does not declare anything" } */
union G { union H {}; int x; }; /* { dg-warning "empty union has size 0 in C|declaration does not declare anything" } */
union I { struct J {}; int x; }; /* { dg-warning "empty struct has size 0 in C|declaration does not declare anything" } */