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

