[v2] Add missing braces to bsearch inline implementation [BZ #28400]

Message ID 87zgru0w0s.fsf@oldenburg.str.redhat.com
State Committed
Commit 32b96d0dec0294465d2221a8f049703599d9d8e4
Headers
Series [v2] Add missing braces to bsearch inline implementation [BZ #28400] |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Florian Weimer Sept. 30, 2021, 6:16 p.m. UTC
  GCC treats the pragma as a statement, so that the else branch only
consists of the pragma, not the return statement.

Fixes commit a725ff1de965f4cc4f36a7e8ae795d40ca0350d7 ("Suppress
-Wcast-qual warnings in bsearch").

---
v2: Added bug number.  Tested on i686-linux-gnu and x86_64-linux-gnu.
    The regressions are gone.

 bits/stdlib-bsearch.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

H.J. Lu Sept. 30, 2021, 6:37 p.m. UTC | #1
On Thu, Sep 30, 2021 at 11:16 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> GCC treats the pragma as a statement, so that the else branch only
> consists of the pragma, not the return statement.
>
> Fixes commit a725ff1de965f4cc4f36a7e8ae795d40ca0350d7 ("Suppress
> -Wcast-qual warnings in bsearch").
>
> ---
> v2: Added bug number.  Tested on i686-linux-gnu and x86_64-linux-gnu.
>     The regressions are gone.
>
>  bits/stdlib-bsearch.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/bits/stdlib-bsearch.h b/bits/stdlib-bsearch.h
> index d688ed2e15..e2fcea6e17 100644
> --- a/bits/stdlib-bsearch.h
> +++ b/bits/stdlib-bsearch.h
> @@ -36,14 +36,16 @@ bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
>        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;
> +         return (void *) __p;
>  #if __GNUC_PREREQ(4, 6)
>  # pragma GCC diagnostic pop
>  #endif
> +       }
>      }
>
>    return NULL;
>

LGTM.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>

Thanks.
  

Patch

diff --git a/bits/stdlib-bsearch.h b/bits/stdlib-bsearch.h
index d688ed2e15..e2fcea6e17 100644
--- a/bits/stdlib-bsearch.h
+++ b/bits/stdlib-bsearch.h
@@ -36,14 +36,16 @@  bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
       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;
+	  return (void *) __p;
 #if __GNUC_PREREQ(4, 6)
 # pragma GCC diagnostic pop
 #endif
+	}
     }
 
   return NULL;