// A template declared with auto should be declared with auto in an // explicit instantiation or explicit specialization, too. // { dg-do compile { target c++1y } } template auto f(T t) { return t; } template<> auto f(int); template auto f(float); template<> auto f(int*); template auto f(float*); template<> short f(short); // { dg-error "does not match" } template char f(char); // { dg-error "does not match" } template<> short f(short*); // { dg-error "does not match" } template char f(char*); // { dg-error "does not match" }