Re: arch/powerpc/xmon/dis-asm.h: 2 * wrong specifiers ?

From: Michael Ellerman
Date: Tue Jun 28 2016 - 03:18:12 EST


On Tue, 2016-06-28 at 08:06 +0100, David Binderman wrote:
> On Tue, Jun 28, 2016 at 5:08 AM, Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote:
> > What config / toolchain are you using? I've never seen these.
>
> A static analyser for C & C++ called cppcheck. Available from sourceforge.
>
> I think you can also get a similar warning if you tweek the gcc compiler warning
> flags. -Wformat=2 maybe.

Ah OK. I've heard of it.

> > > static inline int print_insn_powerpc(unsigned long insn, unsigned long memaddr)
> > > {
> > > printf("%.8x", insn);
> > > return 0;
> > > }
> >
> > Send me a patch to cast insn to unsigned int?
>
> I don't know the code, but given that insn is unsigned long and so can go
> past 32 bits, using a cast to unsigned int might throw away the
> possibly important upper bits.

powerpc instructions are always 32-bit.

We could change the signature for the function to take u32. Except it's the
fallback implementation for the real version which comes from binutils and we'd
prefer to keep that code the same as the binutils version.

cheers