[PATCH 25/39] stdio: Suppress clang warnings for tst-unlockedio.c
Sam James
sam@gentoo.org
Sun Dec 22 04:47:16 GMT 2024
"H.J. Lu" <hjl.tools@gmail.com> writes:
> From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>
> Suppress the following -Wgnu-folding-constant and -Wliteral-conversion
> warnings from Clang:
>
> tst-unlockedio.c:35:12: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant]
> 35 | char buf[strlen (blah) + 1];
> | ^~~~~~~~~~~~~~~~~
>
> tst-unlockedio.c:63:36: error: implicit conversion from 'double' to
> 'size_t' (aka 'unsigned long') changes value from -0 to 0
> [-Werror,-Wliteral-conversion]
> || fwrite_unlocked (blah, 0, -0.0, fp) != 0
> ~~~~~~~~~~~~~~~ ^~~~
> tst-unlockedio.c:61:33: error: implicit conversion from 'double' to
> 'size_t' (aka 'unsigned long') changes value from 0.25 to 0
> [-Werror,-Wliteral-conversion]
> || fwrite_unlocked (--cp, 0.25, 16, fp) != 0
> ~~~~~~~~~~~~~~~ ^~~~
> tst-unlockedio.c:59:37: error: implicit conversion from 'double' to
> 'size_t' (aka 'unsigned long') changes value from 0.25 to 0
> [-Werror,-Wliteral-conversion]
> || fwrite_unlocked (cp++, 16, 0.25, fp) != 0
> ~~~~~~~~~~~~~~~ ^~~~
> tst-unlockedio.c:116:34: error: implicit conversion from 'double' to
> 'size_t' (aka 'unsigned long') changes value from -0 to 0
> [-Werror,-Wliteral-conversion]
> || fread_unlocked (buf, 0, -0.0, fp) != 0
> ~~~~~~~~~~~~~~ ^~~~
> tst-unlockedio.c:114:32: error: implicit conversion from 'double' to
> 'size_t' (aka 'unsigned long') changes value from 0.25 to 0
> [-Werror,-Wliteral-conversion]
> || fread_unlocked (--wp, 0.25, 16, fp) != 0
> ~~~~~~~~~~~~~~ ^~~~
> tst-unlockedio.c:112:36: error: implicit conversion from 'double' to
> 'size_t' (aka 'unsigned long') changes value from 0.25 to 0
> [-Werror,-Wliteral-conversion]
> || fread_unlocked (wp++, 16, 0.25, fp) != 0
> ~~~~~~~~~~~~~~ ^~~~
>
> Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
> ---
> stdio-common/tst-unlockedio.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/stdio-common/tst-unlockedio.c b/stdio-common/tst-unlockedio.c
> index 8ff6b074b0..7f156b3c11 100644
> --- a/stdio-common/tst-unlockedio.c
> +++ b/stdio-common/tst-unlockedio.c
> @@ -32,7 +32,10 @@ static int
> do_test (void)
> {
> const char blah[] = "BLAH";
> + DIAG_PUSH_NEEDS_COMMENT_CLANG;
> + DIAG_IGNORE_NEEDS_COMMENT_CLANG (3.4, "-Wgnu-folding-constant");
> char buf[strlen (blah) + 1];
> + DIAG_POP_NEEDS_COMMENT_CLANG;
> FILE *fp, *f;
> const char *cp;
> char *wp;
> @@ -51,6 +54,9 @@ do_test (void)
> fread_unlocked below as well. */
> DIAG_PUSH_NEEDS_COMMENT;
> DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdiv-by-zero");
> + /* clang warns about the implicit conversion from double to size_t,
> + which is required by this tests. */
> + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wliteral-conversion");
> if (ftello (fp) != 0
> || fwrite_unlocked (blah, blah - blah, strlen (blah), f++) != 0
> || f != fp + 1
> @@ -104,6 +110,7 @@ do_test (void)
> /* See explanation above. */
> DIAG_PUSH_NEEDS_COMMENT;
> DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdiv-by-zero");
> + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wliteral-conversion");
> if (ftello (fp) != 0
> || fread_unlocked (buf, buf - buf, strlen (blah), f++) != 0
> || f != fp + 1
Reviewed-by: Sam James <sam@gentoo.org>
More information about the Libc-alpha
mailing list