You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
3 years ago
|
commit 80a009119ba2330768120476aaad63767b81d543
|
||
|
Author: Jonathan Wakely <jwakely@redhat.com>
|
||
|
Date: Wed May 19 16:48:19 2021 +0100
|
||
|
|
||
|
Suppress -Wcast-qual warnings in bsearch
|
||
|
|
||
|
The first cast to (void *) is redundant but should be (const void *)
|
||
|
anyway, because that's the type of the lvalue being assigned to.
|
||
|
|
||
|
The second cast is necessary and intentionally not const-correct, so
|
||
|
tell the compiler not to warn about it.
|
||
|
|
||
|
Reviewed-by: Florian Weimer <fweimer@redhat.com>
|
||
|
(cherry picked from commit a725ff1de965f4cc4f36a7e8ae795d40ca0350d7)
|
||
|
|
||
|
diff --git a/bits/stdlib-bsearch.h b/bits/stdlib-bsearch.h
|
||
|
index 4132dc6af0077f31..d688ed2e15678e9c 100644
|
||
|
--- a/bits/stdlib-bsearch.h
|
||
|
+++ b/bits/stdlib-bsearch.h
|
||
|
@@ -29,14 +29,21 @@ bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
|
||
|
while (__l < __u)
|
||
|
{
|
||
|
__idx = (__l + __u) / 2;
|
||
|
- __p = (void *) (((const char *) __base) + (__idx * __size));
|
||
|
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
|
||
|
__comparison = (*__compar) (__key, __p);
|
||
|
if (__comparison < 0)
|
||
|
__u = __idx;
|
||
|
else if (__comparison > 0)
|
||
|
__l = __idx + 1;
|
||
|
else
|
||
|
+#if __GNUC_PREREQ(4, 6)
|
||
|
+# pragma GCC diagnostic push
|
||
|
+# pragma GCC diagnostic ignored "-Wcast-qual"
|
||
|
+#endif
|
||
|
return (void *) __p;
|
||
|
+#if __GNUC_PREREQ(4, 6)
|
||
|
+# pragma GCC diagnostic pop
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
return NULL;
|