Re: Build regressions/improvements in v6.4-rc1

From: Geert Uytterhoeven
Date: Mon May 08 2023 - 11:33:16 EST


Hi Pratyush,

On Mon, May 8, 2023 at 5:19 PM Pratyush Yadav <pratyush@xxxxxxxxxx> wrote:
> On Mon, May 08 2023, Geert Uytterhoeven wrote:
> > On Mon, 8 May 2023, Geert Uytterhoeven wrote:
> >> Below is the list of build error/warning regressions/improvements in
> >> v6.4-rc1[1] compared to v6.3[2].
> >>
> >> Summarized:
> >> - build errors: +9/-16
> >> - build warnings: +1/-1439
> >>
> >> Happy fixing! ;-)
> >>
> >> Thanks to the linux-next team for providing the build service.
> >>
> >> [1] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/ac9a78681b921877518763ba0e89202254349d1b/ (all 152 configs)
> >> [2] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/457391b0380335d5e9a5babdec90ac53928b23b4/ (all 152 configs)
> >>
> >>
> [...]
> >
> >> + /kisskb/src/drivers/mtd/spi-nor/spansion.c: error: 'op' is used uninitialized [-Werror=uninitialized]: => 495:27, 364:27
>
> Hmm, I don't get why we get this warning. Line 495 is in
> s25fs256t_post_bfpt_fixup(). It declares 'op' and then it does
>
> op = (struct spi_mem_op)
> CYPRESS_NOR_RD_ANY_REG_OP(nor->params->addr_mode_nbytes,
> SPINOR_REG_CYPRESS_ARCFN, 1,
> nor->bouncebuf);
> ret = spi_nor_read_any_reg(nor, &op, nor->reg_proto);
>
>
> which initializes 'op' before using it. Same with line 364 which is in
> the function cypress_nor_set_addr_mode_nbytes().

I suspect gcc-12 became stricter, and not all members of the union
are initialized.

> Even the compiler warnings [0] don't seem to make much sense to me:
>
> /kisskb/src/drivers/mtd/spi-nor/spansion.c: In function 's25fs256t_post_bfpt_fixup':
> /kisskb/src/drivers/mtd/spi-nor/spansion.c:495:27: error: 'op' is used uninitialized [-Werror=uninitialized]
> 495 | struct spi_mem_op op;
> | ^~
> /kisskb/src/drivers/mtd/spi-nor/spansion.c:495:27: note: 'op' declared here
> 495 | struct spi_mem_op op;
> | ^~
>
> [0] http://kisskb.ellerman.id.au/kisskb/buildresult/14922057/

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds