On Mon, Jul 06, 2026 at 06:31:54PM +0000, David Matlack wrote:
> Mark _##fixture_name##_##test_name##_object __maybe_unused since it may
> not ever be read. This pointer is only read in XFAIL_ADD(), which tests
> are not required to use.
>
> clang made a change to -Wunused-but-set-variable (split out into its own
> subwarning, -Wunused-but-set-global) that causes this warning to be
> emitted for various selftests and can be upgraded to an error in
> selftest that set -Werror.
>
> VFIO selftests have been broken since commit ff556bd98348 ("vfio:
> selftests: Add -Wall and -Werror to the Makefile"), and the net
> selftests builds have been noisy due to -Wall.
>
> Fixes: 24cf65a62266 ("selftests/harness: Share _metadata between forked
> processes")
> Reported-by: Kuniyuki Iwashima <[email protected]>
> Reported-by: Aaron Lewis <[email protected]>
> Reviewed-by: Alex Williamson <[email protected]>
> Reviewed-by: Kuniyuki Iwashima <[email protected]>
> Signed-off-by: David Matlack <[email protected]>
Reviewed-by: Nathan Chancellor <[email protected]>
> ---
> v3:
> - Pick up Kuniyuki's Reviewed-by tag.
> - Pick up Alex's Reviewed-by tag from v1.
> - Fix commit description accuracy (Kuniyuki)
>
> v2:
> https://lore.kernel.org/linux-kselftest/[email protected]/
>
> v1:
> https://lore.kernel.org/linux-kselftest/[email protected]/
>
> Note: The fixes tag is commit 24cf65a62266 ("selftests/harness: Share
> _metadata between forked processes"), which refactored TEST_F to share
> test metadata across processes using mmap and convereted the test
> fixture object from a static struct to a static pointer. Prior to commit
> 24cf65a62266 the static struct was always used once (the address of it
> was taken and passed to __register_test()), but after the static pointer
> was always assigned but potentially never read.
>
> Cc: Nathan Chancellor <[email protected]>
>
> tools/testing/selftests/kselftest_harness.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/kselftest_harness.h
> b/tools/testing/selftests/kselftest_harness.h
> index 261e4df94d9d..29a19bc87084 100644
> --- a/tools/testing/selftests/kselftest_harness.h
> +++ b/tools/testing/selftests/kselftest_harness.h
> @@ -467,7 +467,7 @@ static inline void __kselftest_memset_safe(void *s, int
> c, size_t n)
> !__atomic_test_and_set(_metadata->no_teardown,
> __ATOMIC_RELAXED)) \
> fixture_name##_teardown(_metadata, self, variant); \
> } \
> - static struct __test_metadata *_##fixture_name##_##test_name##_object; \
> + static struct __test_metadata *_##fixture_name##_##test_name##_object
> __maybe_unused; \
> static void __attribute__((constructor(KSELFTEST_PRIO_TEST))) \
> _register_##fixture_name##_##test_name(void) \
> { \
>
> base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
> --
> 2.55.0.rc2.803.g1fd1e6609c-goog
>
--
Cheers,
Nathan