[PATCH] posix: Fix fnmatch build with gcc-16

Sam James sam@gentoo.org
Fri Jun 20 20:31:58 GMT 2025


Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:

> The master branch started to enable some warnings due to optimization
> that were only triggered with -Os [1].  Enable the suppression regardless
> of optimization level.
>
> Checked on aarch64-linux-gnu build.

Thanks Adhemerval. I still think it's a sign that maybe the flow is
complex, but I don't have a suggestion for refactoring it right now, and
the change is fine.

Reviewed-by: Sam James <sam@gentoo.org>

>
> [1] https://gcc.gnu.org/pipermail/gcc-regression/2025-June/082378.html
> ---
>  posix/fnmatch_loop.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
> index 9ec5e0edc6..83f8861653 100644
> --- a/posix/fnmatch_loop.c
> +++ b/posix/fnmatch_loop.c
> @@ -537,7 +537,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
>  				   that it was properly set in the loop
>  				   above.   */
>                                  DIAG_PUSH_NEEDS_COMMENT;
> -                                DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
> +                                DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
>                                  if (! is_range
>  
>  # if WIDE_CHAR_VERSION
> @@ -560,7 +560,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
>  				   above it will be properly set by the loop.
>  				   */
>                                  DIAG_PUSH_NEEDS_COMMENT;
> -                                DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
> +                                DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
>                                  cold = wextra[1 + wextra[0]];
>                                  DIAG_POP_NEEDS_COMMENT;
>  # else
> @@ -745,7 +745,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
>                                         means that it was properly set in the
>                                         loop above.   */
>                                      DIAG_PUSH_NEEDS_COMMENT;
> -                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
> +                                    DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
>                                      cend = wextra[1 + wextra[0]];
>                                      DIAG_POP_NEEDS_COMMENT;
>  # else
> @@ -754,7 +754,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
>  				       wextra above it will be properly set by
>  				       the loop.   */
>                                      DIAG_PUSH_NEEDS_COMMENT;
> -                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
> +                                    DIAG_IGNORE_NEEDS_COMMENT (16, "-Wmaybe-uninitialized");
>                                      idx += 1 + extra[idx];
>                                      DIAG_POP_NEEDS_COMMENT;
>                                      /* Adjust for the alignment.  */


More information about the Libc-alpha mailing list