On Wed, Mar 5, 2025 at 4:47 AM Petr Mladek pmladek@suse.com wrote:
On Sat 2025-02-15 14:52:22, Tamir Duberstein wrote:
On Sat, Feb 15, 2025 at 1:51 PM kernel test robot lkp@intel.com wrote:
Hi Tamir,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 7b7a883c7f4de1ee5040bd1c32aabaafde54d209]
url:
https://github.com/intel-lab-lkp/linux/commits/Tamir-Duberstein/scanf-implic...
base: 7b7a883c7f4de1ee5040bd1c32aabaafde54d209 patch link:
https://lore.kernel.org/r/20250214-scanf-kunit-convert-v8-3-5ea50f95f83c%40g...
patch subject: [PATCH v8 3/4] scanf: convert self-test to KUnit config: sh-randconfig-002-20250216 (
https://download.01.org/0day-ci/archive/20250216/202502160245.KUrryBJR-lkp@i... )
compiler: sh4-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (
https://download.01.org/0day-ci/archive/20250216/202502160245.KUrryBJR-lkp@i... )
If you fix the issue in a separate patch/commit (i.e. not just a new
version of
the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes:
https://lore.kernel.org/oe-kbuild-all/202502160245.KUrryBJR-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from <command-line>: lib/tests/scanf_kunit.c: In function 'numbers_list_ll':
include/linux/compiler.h:197:61: warning: function 'numbers_list_ll'
might be a candidate for 'gnu_scanf' format attribute [-Wsuggest-attribute=format]
I am not able to reproduce these warnings with clang 19.1.7. They also don't obviously make sense to me.
I have reproduced the problem with gcc:
$> gcc --version gcc (SUSE Linux) 14.2.1 20250220 [revision 9ffecde121af883b60bbe60d00425036bc873048]
$> make W=1 lib/test_scanf.ko CALL scripts/checksyscalls.sh DESCEND objtool INSTALL libsubcmd_headers CC [M] lib/test_scanf.o In file included from <command-line>: lib/test_scanf.c: In function ‘numbers_list_ll’: ./include/linux/compiler.h:197:61: warning: function ‘numbers_list_ll’ might be a candidate for ‘gnu_scanf’ format attribute [-Wsuggest-attribute=format] 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ [...]
It seems that it is a regression introduced by the first patch of this patch set. And the fix is:
diff --git a/lib/test_scanf.c b/lib/test_scanf.c index d1664e0d0138..e65b10c3dc11 100644 --- a/lib/test_scanf.c +++ b/lib/test_scanf.c @@ -27,7 +27,7 @@ static struct rnd_state rnd_state __initdata; typedef int (*check_fn)(const char *file, const int line, const void *check_data, const char *string, const char *fmt, int n_args, va_list ap);
-static void __scanf(6, 0) __init +static void __scanf(6, 8) __init _test(const char *file, const int line, check_fn fn, const void *check_data, const char *string, const char *fmt, int n_args, ...) {
Best Regards, Petr
Thanks for the review! I'll respin later today unless you let me know otherwise.
Cheers. Tamir