Re: [PATCH] net: wireguard: avoid unused variable warning

From: Jason A. Donenfeld
Date: Tue May 05 2020 - 16:07:09 EST


On Tue, May 5, 2020 at 8:13 AM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> clang points out a harmless use of uninitialized variables that
> get passed into a local function but are ignored there:
>
> In file included from drivers/net/wireguard/ratelimiter.c:223:
> drivers/net/wireguard/selftest/ratelimiter.c:173:34: error: variable 'skb6' is uninitialized when used here [-Werror,-Wuninitialized]
> ret = timings_test(skb4, hdr4, skb6, hdr6, &test_count);
> ^~~~
> drivers/net/wireguard/selftest/ratelimiter.c:123:29: note: initialize the variable 'skb6' to silence this warning
> struct sk_buff *skb4, *skb6;
> ^
> = NULL
> drivers/net/wireguard/selftest/ratelimiter.c:173:40: error: variable 'hdr6' is uninitialized when used here [-Werror,-Wuninitialized]
> ret = timings_test(skb4, hdr4, skb6, hdr6, &test_count);
> ^~~~
> drivers/net/wireguard/selftest/ratelimiter.c:125:22: note: initialize the variable 'hdr6' to silence this warning
> struct ipv6hdr *hdr6;
> ^

Seems like the code is a bit easier to read and is more uniform
looking by just initializing those two variables to NULL, like the
warning suggests. If you don't mind, I'll queue something up in my
tree to this effect.

By the way, I'm having a bit of a hard time reproducing the warning
with either clang-10 or clang-9. Just for my own curiosity, would you
mind sending the .config that results in this?

Jason