2 // { dg-do compile { target c++14 } }
8 template <class T, int N>
9 bool foo<T[N]> = foo<T>;
11 #define assert(X) if (!(X)) __builtin_abort();
15 // { dg-final { scan-assembler "_Z3fooIiE" } }
17 // { dg-final { scan-assembler "_Z3fooIdE" } }
19 // { dg-final { scan-assembler "_Z3fooIA3_iE" } }
21 // { dg-final { scan-assembler "_Z3fooIA3_dE" } }
22 assert(!foo<double[3]>);
23 // { dg-final { scan-assembler "_Z3fooIA2_A5_A3_iE" } }
24 assert(foo<int[2][5][3]>);
25 // { dg-final { scan-assembler "_Z3fooIA2_A5_A3_dE" } }
26 assert(!foo<double[2][5][3]>);