2 // Contributed by Wolfgang Bangerth <bangerth at ticam dot utexas dot edu>
3 // PR c++/509: Make sure specializations of member templates match correctly
4 // between template and non-template overloads.
8 template <class U> void f (U);
11 template <class U> void h (U);
17 template <class U> void g (U);
21 template <> void A<int>::f (int); // { dg-error "" }
22 template <> template <> void A<int>::f (int);
24 template <> void A<int>::f2 (int);
25 template <> template <> void A<int>::f2 (int); // { dg-error "" }
27 template <> void A<float>::g (float);
28 template <> template <> void A<float>::g(float); // { dg-error "" }
30 template <> void A<float>::g2 (float); // { dg-error "" }
31 template <> template <> void A<float>::g2(float); // { dg-error "" }
33 template <> void A<long>::h (long);
34 template <> template <> void A<long>::h(long);