Messages in this thread | | | From | Andy Shevchenko <> | Date | Thu, 30 Jun 2022 10:13:34 +0200 | Subject | Re: [PATCH] lib/test_printf.c: fix clang -Wformat warnings |
| |
On Thu, Jun 30, 2022 at 2:11 AM Justin Stitt <justinstitt@google.com> wrote: > > see warnings: > | lib/test_printf.c:157:52: error: format specifies type 'unsigned char' > | but the argument has type 'int' [-Werror,-Wformat] test("0|1|1|128|255", > | "%hhu|%hhu|%hhu|%hhu|%hhu", 0, 1, 257, 128, -1); > - > | lib/test_printf.c:158:55: error: format specifies type 'char' but the > | argument has type 'int' [-Werror,-Wformat] test("0|1|1|-128|-1", > | "%hhd|%hhd|%hhd|%hhd|%hhd", 0, 1, 257, 128, -1); > - > | lib/test_printf.c:159:41: error: format specifies type 'unsigned short' > | but the argument has type 'int' [-Werror,-Wformat] > | test("2015122420151225", "%ho%ho%#ho", 1037, 5282, -11627); > > There's an ongoing movement to eventually enable the -Wformat flag for > clang. Previous patches have targeted incorrect usage of > format specifiers. In this case, however, the "incorrect" format > specifiers are intrinsically part of the test cases. Hence, fixing them > would be misaligned with their intended purpose. My proposed fix is to > simply disable the warnings so that one day a clean build of the kernel > with clang (and -Wformat enabled) would be possible. It would also keep > us in the green for alot of the CI bots.
a lot
...
> #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ blank line
> +#define DO_PRAGMA(x) _Pragma(#x) > +#define NOWARN(warnoption, ...) > + DO_PRAGMA(GCC diagnostic push) > + DO_PRAGMA(GCC diagnostic ignored #warnoption) > + __VA_ARGS__ > + DO_PRAGMA(GCC diagnostic pop)
Is it deliberately a broken indentation here?
...
> + /* disable -Wformat for this chunk */ > + NOWARN(-Wformat, > test("0|1|1|128|255", "%hhu|%hhu|%hhu|%hhu|%hhu", 0, 1, 257, 128, -1); > test("0|1|1|-128|-1", "%hhd|%hhd|%hhd|%hhd|%hhd", 0, 1, 257, 128, -1); > test("2015122420151225", "%ho%ho%#ho", 1037, 5282, -11627);
Perhaps shift right the lines as well?
> + ) > + /* end chunk */
-- With Best Regards, Andy Shevchenko
| |