Richard Pospesel richard@torproject.org writes:
Duplicated types made it impossible to avoid multiply defining user- defined types (structs, enums, unions). The duptype function has been removed and the remaining code refactored to no longer require it. User-define types are now no longer duplicated in typetree.c
Various type attributes (ATTR_EXTERN, ATTR_CONST, and ATTR_INLINE) had to be removed from a type_t's attributes and placed on struct _decl_spec. These attributes are generally properties of an instance of a type rather than that of the type itself.
The decl_spec_t type is now used in many places where a type_t previously sufficed. It can be found on struct _var and on the pointer, array, typedef, and bitfield details structs. However, as a result there is a lot of churn in code previously referencing the type_t in these places which must now reference a decl_spec_t's type_t.
This is still way too large to review, you'll need to split this in smaller patches. As a first step, any necessary code restructuring should be done as a noop patch separately from functional changes.