X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f Date: Wed, 26 Dec 2001 09:44:29 +0200 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: djgpp-workers AT delorie DOT com Message-Id: <7458-Wed26Dec2001094429+0200-eliz@is.elta.co.il> X-Mailer: emacs 21.1.50 (via feedmail 8 I) and Blat ver 1.8.9 In-reply-to: <200112251716.SAA11347@father.ludd.luth.se> (message from Martin Str|mberg on Tue, 25 Dec 2001 18:16:39 +0100 (MET)) Subject: Re: gcc 3.03 and libc sources References: <200112251716 DOT SAA11347 AT father DOT ludd DOT luth DOT se> Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: Martin Str|mberg > Date: Tue, 25 Dec 2001 18:16:39 +0100 (MET) > > > I still have no idea why does gcc complain here. What's wrong about > > having an expression whose result could be either signed or unsigned? I > > think it's worth a bug report nonetheless, if only to hear an > > explanation from the maintainers. > > I'm using -Wsign-compare, which is the option that produces this > warning. I assume this makes gcc complain about implicit casting. So > if we have a "bool ? signed : unsigned" expression, one of signed or > unsigned must be casted. That's not what -Wsign-compare is supposed to be about. It supposed to warn about the following code: int foo; unsigned bar; if (foo > bar) do_something (); This kind of code has a subtle bug: if foo is negative, you might have do_something() called, even though a negative value cannot possibly be larger than an unsigned value! Thus the ``compare'' in ``-Wsign-compare''. This warning helps you find bugs that can lurk for years without being discovered. But what GCC flags in the cases you mentioned is something very different: there's no comparison between signed and unsigned values in those cases. What we have is an expression that sometimes yields signed values and sometimes unsigned values. What's wrong with that? So I maintain that a bug report should be sent to the GCC list.