delorie.com/archives/browse.cgi | search |
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" <eliz AT is DOT elta DOT co DOT il> |
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 |
> From: Martin Str|mberg <ams AT ludd DOT luth DOT se> > 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.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |