Date: Tue, 13 Dec 2016 20:41:36 -0800 From: Mark Millard <markmi@dsl-only.net> To: Justin Hibbits <jhibbits@FreeBSD.org>, Nathan Whitehorn <nwhitehorn@freebsd.org> Cc: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: sys/powerpc/powerpc/trap.c has messed up masking operation?: use of || for bit field masling Message-ID: <0661C9A5-5D4C-4F00-9B0C-F80688BED8A4@dsl-only.net>
next in thread | raw e-mail | index | archive | help
clang 3.9.0 is complaining about: --- trap.o --- /usr/src/sys/powerpc/powerpc/trap.c:283:42: warning: use of logical '||' = with constant operand [-Wconstant-logical-operand] frame->cpu.booke.dbcr0 &=3D ~(DBCR0_IDM || = DBCR0_IC); ^ = ~~~~~~~~ /usr/src/sys/powerpc/powerpc/trap.c:283:42: note: use '|' for a bitwise = operation frame->cpu.booke.dbcr0 &=3D ~(DBCR0_IDM || = DBCR0_IC); ^~ | Looking around: # grep DBCR0_ /usr/src/sys/powerpc/include/spr.h . . . #define DBCR0_IDM 0x40000000 /* Internal Debug Mode */ . . . #define DBCR0_IC 0x08000000 /* Instruction Completion = debug event */ . . . || use seems unlikely to be correct for the context. There is also this that I happened to notice = sys/powerpc/powerpc/intr_machdep.c : --- intr_machdep.o --- /usr/src/sys/powerpc/powerpc/intr_machdep.c:454:15: warning: comparison = of constant -1 with expression of type 'enum intr_trigger' is always = false [-Wtautological-constant-out-of-range-compare] if (i->trig =3D=3D -1) ~~~~~~~ ^ ~~ /usr/src/sys/powerpc/powerpc/intr_machdep.c:500:16: warning: comparison = of constant -1 with expression of type 'enum intr_trigger' is always = false [-Wtautological-constant-out-of-range-compare] if (i->trig =3D=3D -1) ~~~~~~~ ^ ~~ There are other comparisons around with a constant=20 result at compile time. But they tend to be in less central areas like zfs. Similarly for some other types of compiler reports. =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0661C9A5-5D4C-4F00-9B0C-F80688BED8A4>