Validate a structure declaration.
(valid-structdecl structdecl previous table ienv) → (mv erp new-structdecl new-previous return-types new-table)
The
If the structure declaration declares members, first we validate the list of specifiers and qualifiers, obtaining a type if the validation is successful. Then we use a separate validation function for the structure declarators, which also returns a possibly extended list of member names.
If the structure declaration consists of a static assertion declaration, we validate it using a separate validation function. The list of member names is unchanged.
If the structure declaration is empty (i.e. a semicolon), which is a GCC extension, the list of member names and the validation table are unchanged.