Subject: Re: [RFC][PATCH 00/10] Sparse: Git's "make check" target

From: Ramsay Jones <[email-masked]>
Date: Tue, 12 Jun 2007 18:37:18 +0100

Josh Triplett wrote:
> Ramsay Jones wrote:
>> fix most of those problems. (the output from "make check" was about 16k
>> lines at one point!). Git also tickled a bug in sparse 0.2, which resulted
>> in some 120+ lines of bogus warnings; that was fixed in version 0.3 (commit
>> 0.2-15-gef25961).  As a result, sparse version 0.3 + my patches, elicits 106
>> lines of output from "make check".
> 
> One note about using Sparse with Git: you almost certainly don't want to pass
> -Wall to sparse, and current Git passes CFLAGS to Sparse which will do exactly
> that.  -Wall turns on all possible Sparse warnings, including nitpicky
> warnings and warnings with a high false positive rate.

I have to say that, my initial reaction, was to disagree; I certainly want to
pass -Wall to sparse! Why not? Did you have any particular warnings in mind?
(I haven't noticed any that were nitpicky or had a high false positive rate!)

...  You should start from
> the default set of Sparse warnings, and add additional warnings as desired, or
> turn off those you absolutely can't live with.  

Why not "-Wall -Wno-nitpicky -Wno-false-positive" ;-)

... Current Sparse from Git (post
> 0.3, after commit e18c1014449adf42520daa9d3e53f78a3d98da34) has a change to
> cgcc to filter out -Wall, so you can pass -Wall to GCC but not Sparse.  

Yes, I noticed that. Again, I'm not sure I agree.
I didn't comment on that patch, because my exposure to sparse is very limited.
So far I've only run it on git, so I can hardly claim any great experience with
the output from sparse. However, 105 lines of output (which represents 71 warnings)
for 72,974 lines of C (in 179 .c files) did not seem at all unreasonable.

>> [Note: As far as the NULL pointer warnings are concerned, I don't much care either
>> way. I just used that as an example (also note patch 02). Having said that, I
>> do think that the "NULL is the only one true null pointer" brigade need to
>> chill out a little; in fact I remember when 0 was the *only* null pointer.]
> 
> And at one point prototypes didn't exist either. :)

Yes, but that was actually an improvement to the language ;-)

(As I say above, I don't really care about the NULL pointer example; I hope
the main point was not lost)

All the Best,

Ramsay Jones