// { dg-do assemble  }
template <class T, int I>
struct S {
};
template <int I>
struct S <double, I> {
};
template <class T>
void f ()
{
  S<double, T::x> s;
}
// { dg-do assemble  }
template <class T, int I>
struct S {
};
template <int I>
struct S <double, I> {
};
template <class T>
void f ()
{
  S<double, T::x> s;
}