PR tree-optimization/81384 - built-in form of strnlen missing
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr34456.c
blobb4a845ec14b1a4b5c0cd3233cf632d54a5507d80
1 /* { dg-skip-if "requires qsort" { freestanding } } */
3 #include <stdlib.h>
5 int __attribute__ ((noinline)) debug (void) { return 1; }
6 int errors;
8 struct s { int elt; int (*compare) (int); };
10 static int
11 compare (const void *x, const void *y)
13 const struct s *s1 = x, *s2 = y;
14 int (*compare1) (int);
15 int elt2;
17 compare1 = s1->compare;
18 elt2 = s2->elt;
19 if (elt2 != 0 && debug () && compare1 (s1->elt) != 0)
20 errors++;
21 return compare1 (elt2);
24 int bad_compare (int x) { return -x; }
25 struct s array[2] = { { 1, bad_compare }, { -1, bad_compare } };
27 int
28 main (void)
30 qsort (array, 2, sizeof (struct s), compare);
31 return errors == 0;