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