[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),
/* skip the implicit cast */
expression_t *expression = entry->enum_value.value;
- if (expression->kind == EXPR_UNARY_CAST_IMPLICIT) {
- expression = expression->unary.value;
- }
print_expression(expression);
}
print_string(",\n");
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);