1// { dg-do assemble } 2 3template <class X, int n> X f (auto X (*x)[n]) { return (*x)[n/2]; } 4extern int i[30]; 5extern double d[99]; 6 7int foo (int ii) { return f (&i); } // causes abort 8double foo (double dd) { return f (&d); } 9