From owner-freebsd-ppc@freebsd.org Fri Dec 16 08:08:16 2016 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63F10C822FA for ; Fri, 16 Dec 2016 08:08:16 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-162.reflexion.net [208.70.211.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 12EE91CA6 for ; Fri, 16 Dec 2016 08:08:15 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 19660 invoked from network); 16 Dec 2016 08:01:29 -0000 Received: from unknown (HELO mail-cs-01.app.dca.reflexion.local) (10.81.19.1) by 0 (rfx-qmail) with SMTP; 16 Dec 2016 08:01:29 -0000 Received: by mail-cs-01.app.dca.reflexion.local (Reflexion email security v8.20.0) with SMTP; Fri, 16 Dec 2016 03:01:41 -0500 (EST) Received: (qmail 13020 invoked from network); 16 Dec 2016 08:01:41 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 16 Dec 2016 08:01:41 -0000 Received: from [192.168.1.103] (c-67-170-167-181.hsd1.or.comcast.net [67.170.167.181]) by iron2.pdx.net (Postfix) with ESMTPSA id BC135EC8FC4; Fri, 16 Dec 2016 00:01:28 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\)) Subject: Re: sys/powerpc/powerpc/trap.c has messed up masking operation?: use of || for bit field masling From: Mark Millard In-Reply-To: <96CACD85-DED4-46C6-BBE3-53B4DEFF89DD@FreeBSD.org> Date: Fri, 16 Dec 2016 00:01:28 -0800 Cc: Nathan Whitehorn , FreeBSD PowerPC ML Content-Transfer-Encoding: quoted-printable Message-Id: <6335DBE9-4942-45B2-8DD7-0EDF781CA0F4@dsl-only.net> References: <0661C9A5-5D4C-4F00-9B0C-F80688BED8A4@dsl-only.net> <96CACD85-DED4-46C6-BBE3-53B4DEFF89DD@FreeBSD.org> To: Justin Hibbits X-Mailer: Apple Mail (2.3251) X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Dec 2016 08:08:16 -0000 On 2016-Dec-15, at 8:42 PM, Justin Hibbits = wrote: > Hi Mark, >=20 > On Dec 13, 2016, at 10:41 PM, Mark Millard wrote: >=20 >> clang 3.9.0 is complaining about: >>=20 >> --- 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: >>=20 >>=20 >> # grep DBCR0_ /usr/src/sys/powerpc/include/spr.h >> . . . >> #define DBCR0_IDM 0x40000000 /* Internal Debug Mode = */ >> . . . >> #define DBCR0_IC 0x08000000 /* Instruction = Completion debug event */ >> . . . >>=20 >> || use seems unlikely to be correct for the context. >>=20 >=20 > Good find. Fixed in r310146, to be merged to stable/11 in a couple = weeks. Thanks. >>=20 >> There is also this that I happened to notice = sys/powerpc/powerpc/intr_machdep.c : >>=20 >> --- 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) >> ~~~~~~~ ^ ~~ >=20 > This may or may not be a problem, depending on optimization settings. = Can you file a bug for this so it doesn't get lost? Bugzilla 215333 has the submittal. >>=20 >> 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. >>=20 >> =3D=3D=3D >> Mark Millard >> markmi at dsl-only.net >>=20 >=20 >=20 > Thanks for the clang and external toolchain testing. Lots of good = finds. Glad to help. > - Justin =3D=3D=3D Mark Millard markmi at dsl-only.net