do not add searchpath stuff into parse_headername
[cparser] / type.c
diff --git a/type.c b/type.c
index 75dffd7..df0b759 100644 (file)
--- 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  = &parameter->next;
        }
 
        return identify_new_type(type);