case Type::Builtin:
// Only exactly equal builtin types are compatible, which is tested above.
return QualType();
+ case Type::Complex:
+ // Distinct complex types are incompatible.
+ return QualType();
case Type::Vector:
if (areCompatVectorTypes(LHS->getAsVectorType(), RHS->getAsVectorType()))
return LHS;
// PR2502
void (*f)(void);
void (*f)() = 0;
+
+typedef __attribute__(( ext_vector_type(2) )) int Vi2;
+typedef __attribute__(( ext_vector_type(2) )) float Vf2;
+
+Vf2 g0; // expected-note {{previous definition is here}}
+Vi2 g0; // expected-error {{redefinition of 'g0'}}
+
+_Complex int g1; // expected-note {{previous definition is here}}
+_Complex float g1; // expected-error {{redefinition of 'g1'}}