1// { dg-do assemble  }
2
3template <int I, int J, int K>
4struct S {};
5
6template <int I, int J>
7struct S<I, J, 2> : public S<I, I, I>, S<J, J, J> {};
8
9template <int I, int J, int K>
10void f(S<I, J, K>, S<I, I, I>);
11
12void g() {
13  S<0, 0, 0> s0;
14  S<0, 1, 2> s2;
15
16  f<0>(s0, s2);
17  f(s0, s2); // { dg-error "" } no matching function
18}
19