+2004-06-23 Andrew Pinski <apinski@apple.com>
+
+ * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
+ type qualifiers at all.
+ If both of the type domains are null and the new element type is
+ the same as one of the, return the one which the element type.
+ matches.
+ Do not call qualify_type on the new type.
+
2004-06-23 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
case ARRAY_TYPE:
{
tree elt = composite_type (TREE_TYPE (t1), TREE_TYPE (t2));
+
+ /* We should not have any type quals on arrays at all. */
+ if (TYPE_QUALS (t1) || TYPE_QUALS (t2))
+ abort ();
+
/* Save space: see if the result is identical to one of the args. */
if (elt == TREE_TYPE (t1) && TYPE_DOMAIN (t1))
return build_type_attribute_variant (t1, attributes);
if (elt == TREE_TYPE (t2) && TYPE_DOMAIN (t2))
return build_type_attribute_variant (t2, attributes);
+
+ if (elt == TREE_TYPE (t1) && !TYPE_DOMAIN (t2) && !TYPE_DOMAIN (t1))
+ return build_type_attribute_variant (t1, attributes);
+ if (elt == TREE_TYPE (t2) && !TYPE_DOMAIN (t2) && !TYPE_DOMAIN (t1))
+ return build_type_attribute_variant (t2, attributes);
+
/* Merge the element types, and have a size if either arg has one. */
t1 = build_array_type (elt, TYPE_DOMAIN (TYPE_DOMAIN (t1) ? t1 : t2));
- t1 = build_type_attribute_variant (t1, attributes);
- return qualify_type (t1, t2);
+ return build_type_attribute_variant (t1, attributes);
}
case FUNCTION_TYPE:
+2004-06-23 Andrew Pinski <apinski@apple.com>
+
+ * gcc.dg/c90-array-quals-2.c: New test.
+
2006-06-23 Nitin Yewale <NitinY@KPITCummins.com>
* gcc.dg/kpice1.c: New test.