Re: [PATCH 2/3] soc: ti: knav_qmss_queue: do device_node auto cleanup

Kousik Sanagavarapu
2024-05-13T07:23:36Z

On Sun, May 12, 2024 at 11:44:51PM -0700, Nathan Chancellor wrote:
> On Sun, May 12, 2024 at 03:56:22PM +0530, Kousik Sanagavarapu wrote:
> > On Sat, May 11, 2024 at 06:12:39PM +0800, kernel test robot wrote:
> > > Hi Kousik,
> > >
> > > kernel test robot noticed the following build errors:
> > >
> >
> > [...]
> >
> > > All errors (new ones prefixed by >>):
> > >
> > > >> drivers/soc/ti/knav_qmss_queue.c:1853:3: error: cannot jump from this goto statement to its label
> > > goto err;
> > > ^
> > > drivers/soc/ti/knav_qmss_queue.c:1855:22: note: jump bypasses initialization of variable with __attribute__((cleanup))
> > > struct device_node *regions __free(device_node) =
> > > ^

[...]

> > Seems like gcc didn't catch this when I compiled locally.
>
> FWIW, you may notice this as you do more conversions. The fact that GCC
> does not warn at all is a GCC bug as far as I am aware (i.e., clang's
> error is correct):
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91951
>
> which has come up in other places:
>
> https://lore.kernel.org/20240425174732.GA270911@dev-arch.thelio-3990X/

Thank you so much for these links :)

All my internet searches ended up at stackoverflow posts which didn't
even describe the problem correctly, which also lead me to write an
email explaining a partly erroneous solution, which is sitting in my
mailbox ;)

Thanks again, these will help a lot.