On Thu, Jul 30, 2026 at 08:24:36AM +0200, Christophe Leroy (CS GROUP) wrote:
> 
> 
> Le 29/07/2026 à 22:49, Link Mauve a écrit :
> > It seems this function has only compiled without warnings on PPC64, not
> > on PowerPC, so before this commit it would fail with:
> > ```
> > ../arch/powerpc/lib/sstep.c: In function 'analyse_instr':
> > ../arch/powerpc/lib/sstep.c:1350:28: error: variable 'suffix' set but not 
> > used [-Werror=unused-but-set-variable]
> >   1350 |         unsigned int word, suffix;
> >        |                            ^~~~~~
> > ../arch/powerpc/lib/sstep.c:1346:38: error: variable 'rc' set but not used 
> > [-Werror=unused-but-set-variable]
> >   1346 |         unsigned int opcode, ra, rb, rc, rd, spr, u;
> >        |                                      ^~
> > cc1: all warnings being treated as errors
> > ```
> > 
> 
> I'm surprised we still have this issue. I remember seeing it reported
> several times allthough I've not been able to spot when.
> 
> By the way on my side it happens only when I do a W=1 build.

Oh indeed, I was using W=1 all along, thanks for spotting that!

> 
> Same as previous patch, I'd prefer using CONFIG_PPC64 instead of
> __powerpc64__

Will do in v2.

> 
> > Signed-off-by: Link Mauve <[email protected]>
> > ---
> >   arch/powerpc/lib/sstep.c | 10 ++++++++--
> >   1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
> > index 597a0d841fe8..c866e4337f94 100644
> > --- a/arch/powerpc/lib/sstep.c
> > +++ b/arch/powerpc/lib/sstep.c
> > @@ -1342,16 +1342,20 @@ int analyse_instr(struct instruction_op *op, const 
> > struct pt_regs *regs,
> >   {
> >   #ifdef __powerpc64__
> >     unsigned int suffixopcode, prefixtype, prefix_r;
> > +   unsigned int rc;
> > +   unsigned int suffix;
> 
> A single line would be enough:

Will do in v2.

> 
>       unsigned int rc, suffix;
> 
> >   #endif
> > -   unsigned int opcode, ra, rb, rc, rd, spr, u;
> > +   unsigned int opcode, ra, rb, rd, spr, u;
> >     unsigned long int imm;
> >     unsigned long int val, val2;
> >     unsigned int mb, me, sh;
> > -   unsigned int word, suffix;
> > +   unsigned int word;
> >     long ival;
> >     word = ppc_inst_val(instr);
> > +#ifdef __powerpc64__
> >     suffix = ppc_inst_suffix(instr);
> > +#endif
> >     op->type = COMPUTE;
> > @@ -1469,7 +1473,9 @@ int analyse_instr(struct instruction_op *op, const 
> > struct pt_regs *regs,
> >     rd = (word >> 21) & 0x1f;
> >     ra = (word >> 16) & 0x1f;
> >     rb = (word >> 11) & 0x1f;
> > +#ifdef __powerpc64__
> >     rc = (word >> 6) & 0x1f;
> > +#endif
> >     switch (opcode) {
> >   #ifdef __powerpc64__
> 

-- 
Link Mauve

Reply via email to