// RUN: %clang_cc1 -fsyntax-only -verify %s template<typename T> struct X1 { friend void f6(int) { } // expected-error{{redefinition of}} \ // expected-note{{previous definition}} }; X1<int> x1a; X1<float> x1b; // expected-note {{in instantiation of}} template<typename T> struct X2 { operator int(); friend void f(int x) { } // expected-error{{redefinition}} \ // expected-note{{previous definition}} }; int array0[sizeof(X2<int>)]; int array1[sizeof(X2<float>)]; // expected-note{{instantiation of}} void g() { X2<int> xi; f(xi); X2<float> xf; f(xf); } template<typename T> struct X3 { operator int(); friend void h(int x); }; int array2[sizeof(X3<int>)]; int array3[sizeof(X3<float>)]; void i() { X3<int> xi; h(xi); X3<float> xf; h(xf); }