implement K&R style function definitions, code cleanup here and there
[cparser] / type_t.h
index c3bde17..a45997d 100644 (file)
--- a/type_t.h
+++ b/type_t.h
@@ -25,7 +25,7 @@ typedef enum {
        TYPE_ARRAY,
        TYPE_BUILTIN,
        TYPE_TYPEDEF,
-       TYPE_TYPEOF
+       TYPE_TYPEOF,
 } type_type_t;
 
 /* note that the constant values represent the rank of the types as defined
@@ -107,8 +107,9 @@ struct function_type_t {
        type_base_t           type;
        type_t               *result_type;
        function_parameter_t *parameters;
-       bool                  variadic;
-       bool                  unspecified_parameters;
+       unsigned              variadic : 1;
+       unsigned              unspecified_parameters : 1;
+       unsigned              kr_style_parameters : 1;
 };
 
 struct compound_type_t {
@@ -156,6 +157,8 @@ union type_t {
 type_t *make_atomic_type(atomic_type_type_t type, type_qualifiers_t qualifiers);
 type_t *make_pointer_type(type_t *points_to, type_qualifiers_t qualifiers);
 
+type_t *duplicate_type(type_t *type);
+
 static inline bool is_typeref(const type_t *type)
 {
        return type->type == TYPE_TYPEDEF || type->type == TYPE_TYPEOF;