[TYPE_ENUM] = sizeof(enum_type_t),
[TYPE_FUNCTION] = sizeof(function_type_t),
[TYPE_POINTER] = sizeof(pointer_type_t),
+ [TYPE_REFERENCE] = sizeof(reference_type_t),
[TYPE_ARRAY] = sizeof(array_type_t),
[TYPE_TYPEDEF] = sizeof(typedef_type_t),
[TYPE_TYPEOF] = sizeof(typeof_type_t),
type->function.modifiers |= modifiers;
type->function.linkage = LINKAGE_C;
- function_parameter_t *last = NULL;
+ function_parameter_t **anchor = &type->function.parameters;
for (int i = 0; i < n_types; ++i) {
function_parameter_t *parameter = allocate_parameter(argument_types[i]);
- if (last == NULL) {
- type->function.parameters = parameter;
- } else {
- last->next = parameter;
- }
- last = parameter;
+ *anchor = parameter;
+ anchor = ¶meter->next;
}
return identify_new_type(type);