1 // PR c++/61323
2 // { dg-do compile { target c++11 } }
3 
4 char* table1[10];
test1()5 template<unsigned size, char*(&table)[size]> void test1() { }
tester1()6 void tester1() { test1<10,table1>(); }
7 
8 static char* table2[10];
test2()9 template<unsigned size, char*(&table)[size]> void test2() { }
tester2()10 void tester2() { test2<10,table2>(); }
11 
12 const char* table3[10];
test3()13 template<unsigned size, const char*(&table)[size]> void test3() { }
tester3()14 void tester3() { test3<10,table3>(); }
15 
16 const char* const table4[10] = {};
test4()17 template<unsigned size, const char*const (&table)[size]> void test4() { }
tester4()18 void tester4() { test4<10,table4>(); }
19 
20 const char* volatile table5[10] = {};
test5()21 template<unsigned size, const char* volatile (&table)[size]> void test5() { }
tester5()22 void tester5() { test5<10,table5>(); }
23 
24 const char* const table6[10] = {};
test6()25 template<unsigned size, const char*const (&table)[size]> void test6() { }
tester6()26 void tester6() { test6<10,table6>(); }
27