+static bool compound_types_equal(const compound_type_t *type1,
+ const compound_type_t *type2)
+{
+ return type1->compound == type2->compound;
+}
+
+static bool enum_types_equal(const enum_type_t *type1,
+ const enum_type_t *type2)
+{
+ return type1->enume == type2->enume;
+}
+
+static bool typedef_types_equal(const typedef_type_t *type1,
+ const typedef_type_t *type2)
+{
+ return type1->typedefe == type2->typedefe;
+}
+
+static bool typeof_types_equal(const typeof_type_t *type1,
+ const typeof_type_t *type2)
+{
+ if (type1->expression != type2->expression)
+ return false;
+ if (type1->typeof_type != type2->typeof_type)
+ return false;
+
+ return true;
+}
+
+static bool bitfield_types_equal(const bitfield_type_t *type1,
+ const bitfield_type_t *type2)
+{
+ if (type1->base_type != type2->base_type)
+ return false;
+ /* TODO: compare size expression */
+ return false;
+}
+