X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=type_t.h;h=48db72aed7e8f24e7cba53b39e3f7a5b6654de1b;hb=8e0cc9a1b4204fde79cca81b23fa8d932717de7f;hp=057046942e55a57b920648c24fd3f5edf81be6b9;hpb=f894ab556ac1b28843b78f95de1ee399574408fd;p=cparser diff --git a/type_t.h b/type_t.h index 0570469..48db72a 100644 --- a/type_t.h +++ b/type_t.h @@ -201,7 +201,16 @@ type_t *make_array_type(type_t *element_type, size_t size, type_qualifiers_t qualifiers); function_parameter_t *allocate_parameter(type_t*); +/** + * Duplicates a type. + * + * @param type The type to copy. + * @return A copy of the type. + * + * @note This does not produce a deep copy! + */ type_t *duplicate_type(const type_t *type); + type_t *identify_new_type(type_t *type); static inline bool is_typeref(const type_t *type) @@ -291,7 +300,8 @@ type_t *allocate_type_zero(type_kind_t kind); * * @param return_type the return type */ -type_t *make_function_0_type(type_t *return_type); +type_t *make_function_0_type(type_t *return_type, + decl_modifiers_t modifiers); /** * Creates a return_type (func)(argument_type) function type if not @@ -300,7 +310,8 @@ type_t *make_function_0_type(type_t *return_type); * @param return_type the return type * @param argument_type the argument type */ -type_t *make_function_1_type(type_t *return_type, type_t *argument_type1); +type_t *make_function_1_type(type_t *return_type, type_t *argument_type1, + decl_modifiers_t modifiers); /** @@ -308,7 +319,8 @@ type_t *make_function_1_type(type_t *return_type, type_t *argument_type1); * if not already exists. */ type_t *make_function_2_type(type_t *return_type, type_t *argument_type1, - type_t *argument_type2); + type_t *argument_type2, + decl_modifiers_t modifiers); /** * Creates a return_type (func)(argument_type, ...) function type if not @@ -317,7 +329,9 @@ type_t *make_function_2_type(type_t *return_type, type_t *argument_type1, * @param return_type the return type * @param argument_type the argument type */ -type_t *make_function_1_type_variadic(type_t *return_type, type_t *argument_type); +type_t *make_function_1_type_variadic(type_t *return_type, + type_t *argument_type, + decl_modifiers_t modifiers); /** * Create a function type with n parameters