1// { dg-do assemble  }
2
3template<unsigned int n> struct PartialDotProduct {
4    template<class T>
5    static T Expand(T* a, T* b) { return T(); }
6};
7
8const int N = 10;
9
10template<class In1, class In2>
11void
12dot(In1 f1, In2 f2)
13{
14  PartialDotProduct<N>::Expand(f1, f2);
15
16}
17
18int main()
19{
20  double a[N], b[N];
21
22  dot(&a[0], &b[0]);
23}
24