Re: [PATCH net-next 05/11] tools: ynl-gen: define nlattr *array in a block scope
Jakub Kicinski <[email protected]>
| Newsgroups | com.zx2c4.lists.wireguard,org.kernel.vger.linux-kernel,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 4 Sep 2025 22:01:28 +0000 Asbjørn Sloth Tønnesen wrote: > Instead of trying to define "struct nlattr *array;" in the all > the right places, then simply define it in a block scope, > as it's only used here. > > Before this patch it was generated for attribute set _put() > functions, like wireguard_wgpeer_put(), but missing and caused a > compile error for the command function wireguard_set_device(). > > $ make -C tools/net/ynl/generated wireguard-user.o > -e CC wireguard-user.o > wireguard-user.c: In function ‘wireguard_set_device’: > wireguard-user.c:548:9: error: ‘array’ undeclared (first use in ..) > 548 | array = ynl_attr_nest_start(nlh, WGDEVICE_A_PEERS); > | ^~~~~ Dunno about this one. In patch 4 you basically add another instance of the "let's declare local vars at function level" approach. And here you're going the other way. This patch will certainly work, but I felt like I wouldn't have written it this way if I was typing in the parsers by hand.