// RUN: %clang_cc1 -fsyntax-only -verify %s
template<typename T>voidf(T);template<typename T>structA{};// expected-note{{template is declared here}}
structX{template<>friendvoidf<int>(int);// expected-error{{in a friend}}
template<>friendclass A<int>;// expected-error{{cannot be a friend}}
friendvoidf<float>(float);// okay
friendclass A<float>;// okay
};structPR41792{// expected-error@+1{{cannot declare an explicit specialization in a friend}}
template<>friendvoidf<>(int);// expected-error@+2{{template specialization declaration cannot be a friend}}
// expected-error@+1{{too few template arguments for class template 'A'}}
template<>friendclass A<>;};