1/* { dg-do compile } */ 2/* { dg-options "-fcilkplus" } */ 3 4/* This test has no array notation components in it and thus should compile 5 fine without crashing. */ 6 7typedef unsigned int size_t; 8typedef int (*__compar_fn_t) (const void *, const void *); 9extern void *bsearch (const void *__key, const void *__base, 10 size_t __nmemb, size_t __size, __compar_fn_t 11 __compar) 12 __attribute__ ((__nonnull__ (1, 2, 5))) ; 13extern __inline __attribute__ ((__gnu_inline__)) void * 14bsearch (const void *__key, const void *__base, size_t __nmemb, size_t 15 __size, 16 __compar_fn_t __compar) 17{ 18 size_t __l, __u, __idx; 19 const void *__p; 20 int __comparison; 21 __l = 0; 22 __u = __nmemb; 23 while (__l < __u) 24 { 25 __idx = (__l + __u) / 2; 26 __p = (void *) (((const char *) __base) + 27 (__idx * __size)); 28 __comparison = (*__compar) (__key, 29 __p); 30 if (__comparison < 0) 31 __u = __idx; 32 else if (__comparison > 0) 33 __l = __idx + 1; 34 else 35 return (void *) 36 __p; 37 } 38 return ((void *)0); 39} 40