X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=type.c;h=88219a441197435c5ac7395c3a9e34ce7a4b590b;hb=bf92df408b5fef01d5ee065b02c1deb7e4289a5b;hp=75dffd76900c6db25bef563f024e7831e6781427;hpb=e0356ebe47a0d00d0b2d756de5daa5585542d4d9;p=cparser diff --git a/type.c b/type.c index 75dffd7..88219a4 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), @@ -1885,15 +1886,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);