1// { dg-do assemble } 2// { dg-xfail-if "" { xstormy16-*-* } { "*" } { "" } } 3// { dg-options "" } 4 5extern "C" void qsort(void *base, __SIZE_TYPE__ nmemb, __SIZE_TYPE__ size, 6 int (*compar)(const void *, const void *)); 7 8struct R { 9 int count; 10 int state1; 11 int state2; 12}; 13 14int cmp_d(const R* a, const R* b) { 15 return a->count > b->count; 16} 17 18namespace CXX { 19 template<class T, int i1, int i2> 20 inline void qsort (T b[i1][i2], int (*cmp)(const T*, const T*)) { 21 ::qsort ((void*)b, i1*i2, sizeof(T), (int (*)(const void *, const void *))cmp); 22 } 23} 24 25using namespace CXX; 26 27void sort_machine() { 28 struct R d[256][256]; 29 qsort<R,256> (d, cmp_d); 30} 31