X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=type.c;h=df0b7593944535f6257e7171ff578f7903631bff;hb=b00408fc909b04714fcbfbc79985c70b5bedeb66;hp=75dffd76900c6db25bef563f024e7831e6781427;hpb=e0356ebe47a0d00d0b2d756de5daa5585542d4d9;p=cparser diff --git a/type.c b/type.c index 75dffd7..df0b759 100644 --- a/type.c +++ b/type.c @@ -67,6 +67,7 @@ static size_t get_type_struct_size(type_kind_t kind) [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), @@ -573,9 +574,6 @@ void print_enum_definition(const enum_t *enume) /* 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"); @@ -1885,15 +1883,11 @@ type_t *make_function_type(type_t *return_type, int n_types, 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);