merge from gcc
[deliverable/binutils-gdb.git] / libiberty / bsearch.c
index b3283f9285fac3793e00a959676bbe9929758b52..bb5555eff3cdc8f5075340619fdf4be7bbdc81a0 100644 (file)
@@ -67,16 +67,13 @@ is respectively less than, matching, or greater than the array member.
  * look at item 3.
  */
 void *
-bsearch(key, base0, nmemb, size, compar)
-       register void *key;
-       void *base0;
-       size_t nmemb;
-       register size_t size;
-       register int (*compar)();
+bsearch (register const void *key, const void *base0,
+         size_t nmemb, register size_t size,
+         register int (*compar)(const void *, const void *))
 {
-       register char *base = base0;
+       register const char *base = (const char *) base0;
        register int lim, cmp;
-       register void *p;
+       register const void *p;
 
        for (lim = nmemb; lim != 0; lim >>= 1) {
                p = base + (lim >> 1) * size;
@@ -84,7 +81,7 @@ bsearch(key, base0, nmemb, size, compar)
                if (cmp == 0)
                        return (p);
                if (cmp > 0) {  /* key > p: move right */
-                       base = (char *)p + size;
+                       base = (const char *)p + size;
                        lim--;
                } /* else move left */
        }
This page took 0.024938 seconds and 4 git commands to generate.