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