Re: [PATCH] selftests/mqueue: fix 5 warnings about signed/unsigned mismatches

From: Ryan Roberts
Date: Tue May 07 2024 - 03:54:50 EST


On 05/05/2024 23:13, John Hubbard wrote:
> When building with clang, via:
>
> make LLVM=1 -C tools/testing/selftest
>
> ...clang warns about several cases of using a signed integer for the
> priority argument to mq_receive(3), which expects an unsigned int.
>
> Fix this by declaring the type as unsigned int in all cases.
>
> Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx>
> ---
> tools/testing/selftests/mqueue/mq_perf_tests.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/mqueue/mq_perf_tests.c b/tools/testing/selftests/mqueue/mq_perf_tests.c
> index 5c16159d0bcd..fb898850867c 100644
> --- a/tools/testing/selftests/mqueue/mq_perf_tests.c
> +++ b/tools/testing/selftests/mqueue/mq_perf_tests.c
> @@ -323,7 +323,8 @@ void *fake_cont_thread(void *arg)
> void *cont_thread(void *arg)
> {
> char buff[MSG_SIZE];
> - int i, priority;
> + int i;
> + unsigned int priority;
>
> for (i = 0; i < num_cpus_to_pin; i++)
> if (cpu_threads[i] == pthread_self())
> @@ -425,7 +426,8 @@ struct test test2[] = {
> void *perf_test_thread(void *arg)
> {
> char buff[MSG_SIZE];
> - int prio_out, prio_in;
> + int prio_out;

It feels a bit odd for prio_out and prio_in to have different types. I don't
have any prior familiararity with these tests but looks like they are ultimately
the parameters of mq_send() and mq_receive() which both define them as unsigned
ints. Perhaps both should be converted?

> + unsigned int prio_in;
> int i;
> clockid_t clock;
> pthread_t *t;
>
> base-commit: f462ae0edd3703edd6f22fe41d336369c38b884b
> prerequisite-patch-id: b901ece2a5b78503e2fb5480f20e304d36a0ea27