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