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.
42 lines
1.4 KiB
42 lines
1.4 KiB
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;
|
|
|