This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: comparisons..


Gerald Pfeifer wrote:
> 
> On Thu, 13 Jul 2000, Andrew Morton wrote:
> > Unfortunately using `-W' in the kernel makefiles generates a truckload
> > of warnings.  Is there a way of unbundling the `if (unsigned < 0)'
> > warning with a standalone flag?
> 
> The questions is: Are the other warnings warranted or not? :-)

It generated nine megs of warnings total!

Yes, a lot were warranted, but not really practical.

The most useful ones were:

comparison of unsigned with zero:
	(unsigned < 0)
	(unsigned >= 0)

The empty `if' check found several of these:
	if (some_condition);
		statement;

comparisons like X<=Y<=Z do not have their mathematical meaning
	This happened rarely and was 100% correlated with wrong code.


> You already found several bugs in the kernel, perhaps there are further
> ones still in there? And, of course, if you receive warnings you consider
> inappropriate (bugs in the compiler?), please let us know!

There are probably some bugs hiding behind "comparison between signed
and unsigned", but I didn't check these - there were many hundreds.

  I'm told that the compiler will warn for this code:

	unsigned int i;
        if (i > 5)      /* 'i' is unsigned, '5' is signed, so warn */

  which makes this warning hard to use more than occasionally.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]