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