| // { dg-do assemble } |
| |
| struct S1 |
| { |
| template <class T> |
| void f(T t1, T t2); // { dg-message "note" } |
| }; |
| |
| |
| template <> |
| void S1::f(int i1, int i2); |
| |
| template <class U> |
| struct S2 |
| { |
| template <class T> |
| void f(T t1, T t2); // { dg-message "note" } |
| }; |
| |
| template <> |
| template <> |
| void S2<char>::f(int i1, int i2); |
| |
| void h() |
| { |
| S1 s1; |
| s1.f(3, 'c'); // { dg-error "" } no matching function |
| // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } .-1 } |
| |
| S2<char> s2; |
| s2.f(3, 'c'); // { dg-error "" } no matching function |
| // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } .-1 } |
| } |