1 /* { dg-skip-if "requires qsort" { freestanding } } */
5 int __attribute__ ((noinline
)) debug (void) { return 1; }
8 struct s
{ int elt
; int (*compare
) (int); };
11 compare (const void *x
, const void *y
)
13 const struct s
*s1
= x
, *s2
= y
;
14 int (*compare1
) (int);
17 compare1
= s1
->compare
;
19 if (elt2
!= 0 && debug () && compare1 (s1
->elt
) != 0)
21 return compare1 (elt2
);
24 int bad_compare (int x
) { return -x
; }
25 struct s array
[2] = { { 1, bad_compare
}, { -1, bad_compare
} };
30 qsort (array
, 2, sizeof (struct s
), compare
);