[PATCH 24/39] localedata: Fix clang warnings on tests

Sam James sam@gentoo.org
Sun Dec 22 04:46:10 GMT 2024


"H.J. Lu" <hjl.tools@gmail.com> writes:

> From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>
> clang does not support 'I' specifier and handles it as a 'length
> modifier'.
> ---
>  localedata/tst-trans.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/localedata/tst-trans.c b/localedata/tst-trans.c
> index 2819bb32cc..3c0db4d5c1 100644
> --- a/localedata/tst-trans.c
> +++ b/localedata/tst-trans.c
> @@ -22,6 +22,7 @@
>  #include <string.h>
>  #include <wchar.h>
>  #include <wctype.h>
> +#include <libc-diag.h>
>  
>  static int
>  do_test (void)
> @@ -59,7 +60,12 @@ do_test (void)
>    errors |= len != 10;
>    printf ("len = %d, wbuf = L\"%ls\"\n", len, wbuf);
>  
> -  snprintf (buf, sizeof buf, "%Id", 0x499602D2);
> +  /* clang does not support 'I' specifier and handles it as a 'length
> +   * modifier'.  */
> +  DIAG_PUSH_NEEDS_COMMENT_CLANG;
> +  DIAG_IGNORE_NEEDS_COMMENT_CLANG (16, "-Wformat");
> +  snprintf (buf, sizeof buf, "%Id", 0x499602D2U);
> +  DIAG_POP_NEEDS_COMMENT_CLANG;
>    errors |= strcmp (buf, "bcdefghija") != 0;
>    len = strlen (buf);
>    errors |= len != 10;

I'd still prefer -Wno-format for this for Clang but it's not like that's
less messy given it pollutes the Makefiles.

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


More information about the Libc-alpha mailing list