return result;
}
-type_t *get_qualified_type(type_t *type, type_qualifiers_t const qual)
+type_t *get_qualified_type(type_t *orig_type, type_qualifiers_t const qual)
{
- assert(!is_typeref(type));
+ type_t *type = skip_typeref(orig_type);
type_t *copy;
if (is_type_array(type)) {
type_t *qual_element_type = get_qualified_type(element_type, qual);
if (qual_element_type == element_type)
- return type;
+ return orig_type;
copy = duplicate_type(type);
copy->array.element_type = qual_element_type;
} else {
if ((type->base.qualifiers & qual) == qual)
- return type;
+ return orig_type;
copy = duplicate_type(type);
copy->base.qualifiers |= qual;