sys/powerpc/powerpc/trap.c has messed up masking operation?: use of || for bit field masling
Mark Millard
markmi at dsl-only.net
Wed Dec 14 04:41:46 UTC 2016
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 &= ~(DBCR0_IDM || DBCR0_IC);
^ ~~~~~~~~
/usr/src/sys/powerpc/powerpc/trap.c:283:42: note: use '|' for a bitwise operation
frame->cpu.booke.dbcr0 &= ~(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 == -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 == -1)
~~~~~~~ ^ ~~
There are other comparisons around with a constant
result at compile time. But they tend to be in less
central areas like zfs. Similarly for some other
types of compiler reports.
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-ppc
mailing list