Hi Yuwen,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/locking/core]
[also build test WARNING on linus/master v6.19-rc8 next-20260205]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Yuwen-Chen/selftests-futex-fix-incorrect-result-reporting-of-futex_wait-test-item/20260205-110734
base:   tip/locking/core
patch link:    
https://lore.kernel.org/r/tencent_7D6D776D157570FF8C9FB9DE9D9FE5257C0A%40qq.com
patch subject: [PATCH] selftests/futex: fix incorrect result reporting of 
futex_wait test item
config: powerpc64-allnoconfig-bpf 
(https://download.01.org/0day-ci/archive/20260205/[email protected]/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 
f43d6834093b19baf79beda8c0337ab020ac5f17)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20260205/[email protected]/reproduce)

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 <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

   In file included from futex_wait.c:8:
   /usr/include/pthread.h:698:6: error: 'regparm' is not valid on this platform
     698 |      __cleanup_fct_attribute;
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/include/bits/pthreadtypes-arch.h:52:50: note: expanded from macro 
'__cleanup_fct_attribute'
      52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
         |                                                  ^            ~
   In file included from futex_wait.c:8:
   /usr/include/pthread.h:710:3: error: 'regparm' is not valid on this platform
     710 |   __cleanup_fct_attribute;
         |   ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/include/bits/pthreadtypes-arch.h:52:50: note: expanded from macro 
'__cleanup_fct_attribute'
      52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
         |                                                  ^            ~
   In file included from futex_wait.c:8:
   /usr/include/pthread.h:733:6: error: 'regparm' is not valid on this platform
     733 |      __cleanup_fct_attribute;
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/include/bits/pthreadtypes-arch.h:52:50: note: expanded from macro 
'__cleanup_fct_attribute'
      52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
         |                                                  ^            ~
   In file included from futex_wait.c:8:
   /usr/include/pthread.h:746:3: error: 'regparm' is not valid on this platform
     746 |   __cleanup_fct_attribute;
         |   ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/include/bits/pthreadtypes-arch.h:52:50: note: expanded from macro 
'__cleanup_fct_attribute'
      52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
         |                                                  ^            ~
   In file included from futex_wait.c:8:
   /usr/include/pthread.h:751:6: error: 'regparm' is not valid on this platform
     751 |      __cleanup_fct_attribute __attribute__ ((__noreturn__))
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/include/bits/pthreadtypes-arch.h:52:50: note: expanded from macro 
'__cleanup_fct_attribute'
      52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
         |                                                  ^            ~
   In file included from futex_wait.c:14:
   In file included from ../../kselftest_harness.h:63:
   In file included from /usr/include/stdio.h:437:
   /usr/include/bits/floatn.h:97:9: error: __float128 is not supported on this 
target
      97 | typedef __float128 _Float128;
         |         ^
>> futex_wait.c:48:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
>> long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
>> [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:767:21: note: expanded from macro '__EXPECT'
     766 |                         __TH_LOG("Expected %s (%ju) %s %s (%ju)", \
         |                                                ~~~
     767 |                                  _expected_str, __exp_print, #_t, \
         |                                                 ^~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
>> futex_wait.c:48:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
>> long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
>> [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:768:17: note: expanded from macro '__EXPECT'
     766 |                         __TH_LOG("Expected %s (%ju) %s %s (%ju)", \
         |                                                            ~~~
     767 |                                  _expected_str, __exp_print, #_t, \
     768 |                                  _seen_str, __seen_print); \
         |                                             ^~~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
>> futex_wait.c:48:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
>> long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
>> [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:775:21: note: expanded from macro '__EXPECT'
     774 |                         __TH_LOG("Expected %s (%ju) %s %s (%jd)", \
         |                                                ~~~
     775 |                                  _expected_str, __exp_print, #_t, \
         |                                                 ^~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
>> futex_wait.c:48:2: warning: format specifies type 'intmax_t' (aka 'long') 
>> but the argument has type 'intmax_t' (aka 'long long') [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:776:17: note: expanded from macro '__EXPECT'
     774 |                         __TH_LOG("Expected %s (%ju) %s %s (%jd)", \
         |                                                            ~~~
     775 |                                  _expected_str, __exp_print, #_t, \
     776 |                                  _seen_str, __seen_print); \
         |                                             ^~~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
>> futex_wait.c:48:2: warning: format specifies type 'intmax_t' (aka 'long') 
>> but the argument has type 'intmax_t' (aka 'long long') [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:783:21: note: expanded from macro '__EXPECT'
     782 |                         __TH_LOG("Expected %s (%jd) %s %s (%ju)", \
         |                                                ~~~
     783 |                                  _expected_str, __exp_print, #_t, \
         |                                                 ^~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
>> futex_wait.c:48:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
>> long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
>> [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:784:17: note: expanded from macro '__EXPECT'
     782 |                         __TH_LOG("Expected %s (%jd) %s %s (%ju)", \
         |                                                            ~~~
     783 |                                  _expected_str, __exp_print, #_t, \
     784 |                                  _seen_str, __seen_print); \
         |                                             ^~~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
>> futex_wait.c:48:2: warning: format specifies type 'intmax_t' (aka 'long') 
>> but the argument has type 'intmax_t' (aka 'long long') [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:791:21: note: expanded from macro '__EXPECT'
     790 |                         __TH_LOG("Expected %s (%jd) %s %s (%jd)", \
         |                                                ~~~
     791 |                                  _expected_str, __exp_print, #_t, \
         |                                                 ^~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
>> futex_wait.c:48:2: warning: format specifies type 'intmax_t' (aka 'long') 
>> but the argument has type 'intmax_t' (aka 'long long') [-Wformat]
      48 |         ASSERT_EQ(0, pthread_create(&waiter, NULL, waiterfn, (void 
*) &flags));
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:513:2: note: expanded from macro 'ASSERT_EQ'
     513 |         __EXPECT(expected, #expected, seen, #seen, ==, 1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:792:17: note: expanded from macro '__EXPECT'
     790 |                         __TH_LOG("Expected %s (%jd) %s %s (%jd)", \
         |                                                            ~~~
     791 |                                  _expected_str, __exp_print, #_t, \
     792 |                                  _seen_str, __seen_print); \
         |                                             ^~~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
   futex_wait.c:52:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
[-Wformat]
      52 |         EXPECT_EQ(1, futex_wake(futex, 1, FUTEX_PRIVATE_FLAG));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:631:2: note: expanded from macro 'EXPECT_EQ'
     631 |         __EXPECT(expected, #expected, seen, #seen, ==, 0)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:767:21: note: expanded from macro '__EXPECT'
     766 |                         __TH_LOG("Expected %s (%ju) %s %s (%ju)", \
         |                                                ~~~
     767 |                                  _expected_str, __exp_print, #_t, \
         |                                                 ^~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
   futex_wait.c:52:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
[-Wformat]
      52 |         EXPECT_EQ(1, futex_wake(futex, 1, FUTEX_PRIVATE_FLAG));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:631:2: note: expanded from macro 'EXPECT_EQ'
     631 |         __EXPECT(expected, #expected, seen, #seen, ==, 0)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:768:17: note: expanded from macro '__EXPECT'
     766 |                         __TH_LOG("Expected %s (%ju) %s %s (%ju)", \
         |                                                            ~~~
     767 |                                  _expected_str, __exp_print, #_t, \
     768 |                                  _seen_str, __seen_print); \
         |                                             ^~~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
   futex_wait.c:52:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
[-Wformat]
      52 |         EXPECT_EQ(1, futex_wake(futex, 1, FUTEX_PRIVATE_FLAG));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:631:2: note: expanded from macro 'EXPECT_EQ'
     631 |         __EXPECT(expected, #expected, seen, #seen, ==, 0)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:775:21: note: expanded from macro '__EXPECT'
     774 |                         __TH_LOG("Expected %s (%ju) %s %s (%jd)", \
         |                                                ~~~
     775 |                                  _expected_str, __exp_print, #_t, \
         |                                                 ^~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
   futex_wait.c:52:2: warning: format specifies type 'intmax_t' (aka 'long') 
but the argument has type 'intmax_t' (aka 'long long') [-Wformat]
      52 |         EXPECT_EQ(1, futex_wake(futex, 1, FUTEX_PRIVATE_FLAG));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:631:2: note: expanded from macro 'EXPECT_EQ'
     631 |         __EXPECT(expected, #expected, seen, #seen, ==, 0)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:776:17: note: expanded from macro '__EXPECT'
     774 |                         __TH_LOG("Expected %s (%ju) %s %s (%jd)", \
         |                                                            ~~~
     775 |                                  _expected_str, __exp_print, #_t, \
     776 |                                  _seen_str, __seen_print); \
         |                                             ^~~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
   futex_wait.c:52:2: warning: format specifies type 'intmax_t' (aka 'long') 
but the argument has type 'intmax_t' (aka 'long long') [-Wformat]
      52 |         EXPECT_EQ(1, futex_wake(futex, 1, FUTEX_PRIVATE_FLAG));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:631:2: note: expanded from macro 'EXPECT_EQ'
     631 |         __EXPECT(expected, #expected, seen, #seen, ==, 0)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ../../kselftest_harness.h:783:21: note: expanded from macro '__EXPECT'
     782 |                         __TH_LOG("Expected %s (%jd) %s %s (%ju)", \
         |                                                ~~~
     783 |                                  _expected_str, __exp_print, #_t, \
         |                                                 ^~~~~~~~~~~
   ../../kselftest_harness.h:108:43: note: expanded from macro '__TH_LOG'
     107 |                 fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
         |                                                      ~~~
     108 |                         __FILE__, __LINE__, _metadata->name, 
##__VA_ARGS__)
         |                                                                
^~~~~~~~~~~
   futex_wait.c:52:2: warning: format specifies type 'uintmax_t' (aka 'unsigned 
long') but the argument has type 'uintmax_t' (aka 'unsigned long long') 
[-Wformat]
      52 |         EXPECT_EQ(1, futex_wake(futex, 1, FUTEX_PRIVATE_FLAG));

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to