From owner-svn-src-all@FreeBSD.ORG Fri Oct 14 10:21:33 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 922E8106564A; Fri, 14 Oct 2011 10:21:33 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay02.stack.nl [IPv6:2001:610:1108:5010::104]) by mx1.freebsd.org (Postfix) with ESMTP id 2DE728FC1D; Fri, 14 Oct 2011 10:21:33 +0000 (UTC) Received: from snail.stack.nl (snail.stack.nl [IPv6:2001:610:1108:5010::131]) by mx1.stack.nl (Postfix) with ESMTP id F138F358C2C; Fri, 14 Oct 2011 12:21:31 +0200 (CEST) Received: by snail.stack.nl (Postfix, from userid 1677) id D8B3F28468; Fri, 14 Oct 2011 12:21:31 +0200 (CEST) Date: Fri, 14 Oct 2011 12:21:31 +0200 From: Jilles Tjoelker To: Ed Schouten Message-ID: <20111014102131.GA31718@stack.nl> References: <201110140725.p9E7PLbL052182@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201110140725.p9E7PLbL052182@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r226360 - head/usr.bin/tr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Oct 2011 10:21:33 -0000 On Fri, Oct 14, 2011 at 07:25:21AM +0000, Ed Schouten wrote: > Author: ed > Date: Fri Oct 14 07:25:20 2011 > New Revision: 226360 > URL: http://svn.freebsd.org/changeset/base/226360 > Log: > Build tr(1) with WARNS=6. > Modified: > head/usr.bin/tr/Makefile > head/usr.bin/tr/cset.c > head/usr.bin/tr/str.c > Modified: head/usr.bin/tr/cset.c > ============================================================================== > --- head/usr.bin/tr/cset.c Fri Oct 14 07:24:48 2011 (r226359) > +++ head/usr.bin/tr/cset.c Fri Oct 14 07:25:20 2011 (r226360) > @@ -153,11 +153,11 @@ cset_in_hard(struct cset *cs, wchar_t ch > struct csclass *csc; > > for (csc = cs->cs_classes; csc != NULL; csc = csc->csc_next) > - if (csc->csc_invert ^ iswctype(ch, csc->csc_type) != 0) > + if ((csc->csc_invert ^ iswctype(ch, csc->csc_type)) != 0) > return (cs->cs_invert ^ true); > if (cs->cs_root != NULL) { > cs->cs_root = cset_splay(cs->cs_root, ch); > - return (cs->cs_invert ^ cset_rangecmp(cs->cs_root, ch) == 0); > + return ((cs->cs_invert ^ cset_rangecmp(cs->cs_root, ch)) == 0); > } > return (cs->cs_invert ^ false); > } These two changes are wrong. Contrary to what one might expect, the != and == operators bind more strongly than the ^ operator, and the original code depends on that. -- Jilles Tjoelker