struct fields can omit name and can also be only semicolon

// is a valid struct declaration
struct S2 {
  union {
    int c;
    char d;
  };
  struct S1 s;
} x;
// can then directly access union members with x.c instead of x.union.c 

Maybe don’t have vec of type and name as structinfo but list of declarations

⇒ can also have empty struct/union (gcc size 0B but clang 1B) but not enum