This is the mail archive of the
mailing list for the GCC project.
Re: question regarding new warning
- From: Andrew Haley <aph at redhat dot com>
- To: "Thomas Preud'homme" <thomas dot preudhomme at arm dot com>, Daniel Gutson <daniel dot gutson at tallertechnologies dot com>, gcc at gcc dot gnu dot org
- Date: Thu, 27 Mar 2014 08:15:49 +0000
- Subject: Re: question regarding new warning
- Authentication-results: sourceware.org; auth=none
- References: <CAF5HaEV2vt=epA4h-rPGDNnXtUFWXhJeqyAF0k06b1Wuoec97g at mail dot gmail dot com> <5333D6F5 dot 5080008 at redhat dot com> <000301cf4993$46465bb0$d2d31310$ at arm dot com>
On 03/27/2014 08:05 AM, Thomas Preud'homme wrote:
>> From: email@example.com [mailto:firstname.lastname@example.org] On Behalf Of
>> Andrew Haley
>> Assigning a negative literal to an unsigned variable is well-defined
>> standard C. Is it really appropriate to warn for correct code?
> There is lots of cases where gcc warn construct in correct
> code. Think for instance at unused variables. I think this is the
> same kind of situation here: the construct is valid but for many (or
> at least some) users it's not something they are likely to use and
> might indicate an error. I think the rationale provided by Daniel is
Really? I suppose we'll have to agree to differ.
The trouble with warnings like this is that they trigger far too
frequently on good (i.e. correct, reasonable, just as the programmer
intended) code. They bring warnings into disrepute. They also cause
people to do extra work just to shut the compiler up, and this often
IME leads to inadvertent code breakage.
I suppose the one good thing about this warning is that it can easily
be shut up by casting the literal to unsigned.