[PATCH 30/39] stdio: Disable clang warning on scanf13 test
H.J. Lu
hjl.tools@gmail.com
Sun Dec 22 20:26:23 GMT 2024
On Sun, Dec 22, 2024 at 12:52 PM Sam James <sam@gentoo.org> wrote:
>
> "H.J. Lu" <hjl.tools@gmail.com> writes:
>
> > From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> >
> > ---
> > stdio-common/scanf13.c | 15 +++++++++++++++
> > 1 file changed, 15 insertions(+)
> >
> > diff --git a/stdio-common/scanf13.c b/stdio-common/scanf13.c
> > index 60aa62a26f..6f3ddfa1e0 100644
> > --- a/stdio-common/scanf13.c
> > +++ b/stdio-common/scanf13.c
> > @@ -3,6 +3,7 @@
> > #include <stdlib.h>
> > #include <string.h>
> > #include <wchar.h>
> > +#include <libc-diag.h>
> >
> > int
> > main (void)
> > @@ -20,6 +21,11 @@ main (void)
> > } while (0)
> >
> > setlocale (LC_ALL, "de_DE.UTF-8");
> > + /* TODO: explain why clang need these. */
> > + DIAG_PUSH_NEEDS_COMMENT_CLANG;
> > + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-invalid-specifier");
> > + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-extra-args");
> > + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wfortify-source");
> > if (sscanf ("A \xc3\x84-\t\t\xc3\x84-abcdefbcd\t\xc3\x84-B",
> > "A%ms%10ms%4m[bcd]%4mcB", &sp1, &sp2, &sp3, &sp4) != 4)
> > FAIL ();
> > @@ -57,6 +63,7 @@ main (void)
> > FAIL ();
> > free (lsp4);
> > }
> > + DIAG_POP_NEEDS_COMMENT_CLANG;
> >
> > memset (buf, '/', sizeof (buf));
> > buf[0] = '\t';
> > @@ -86,6 +93,9 @@ main (void)
> > FAIL ();
> > free (sp2);
> > }
> > + /* TODO: explain why clang need these. */
> > + DIAG_PUSH_NEEDS_COMMENT_CLANG;
> > + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wfortify-source");
> > if (sscanf (buf, "%2048ms%mc", &sp3, &sp4) != 2)
> > FAIL ();
> > else
> > @@ -126,6 +136,7 @@ main (void)
> > FAIL ();
> > free (sp4);
> > }
> > + DIAG_POP_NEEDS_COMMENT_CLANG;
> > if (sscanf (buf, "%mS%mC", &lsp1, &lsp2) != 2)
> > FAIL ();
> > else
> > @@ -142,6 +153,9 @@ main (void)
> > FAIL ();
> > free (lsp2);
> > }
> > + DIAG_PUSH_NEEDS_COMMENT_CLANG;
> > + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-invalid-specifier");
> > + DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-extra-args");
> > if (sscanf (buf, "%2048mls%mlc", &lsp3, &lsp4) != 2)
> > FAIL ();
> > else
> > @@ -182,6 +196,7 @@ main (void)
> > FAIL ();
> > free (lsp4);
> > }
> > + DIAG_POP_NEEDS_COMMENT_CLANG;
> >
> > return result;
> > }
>
> For -Wfortify-source, I'd really prefer suppressing this in the Makefile
> because there's a strong chance GCC will end up warning in future (or
> that we're already suppressing it and we're duplicating it for each
> compiler).
Will send out the v2 with -Wno-fortify-source in Makefile.
> (Arguably, if it isn't warning, it's a GCC bug, and if it is warning and
> it shouldn't be, it's a Clang bug, too.)
>
> But you left a TODO and I think it's fine as long as we don't push it
> with doing these too much.
>
> Reviewed-by: Sam James <sam@gentoo.org>
--
H.J.
More information about the Libc-alpha
mailing list