1// { dg-do run } 2extern "C" void abort(); 3 4template <class T> 5struct S 6{ 7 template <int i> 8 int f(int j) { abort(); return 0; } 9}; 10 11template <> 12template <> 13int S<double>::f<7>(int j) { return j + 7; } 14 15template <> 16template <> 17int S<double>::f<8>(int j) { return j + 8; } 18 19int main() 20{ 21 S<double> s; 22 23 if (s.f<7>(3) != 10) 24 abort(); 25 26 if (s.f<8>(3) != 11) 27 abort(); 28} 29