[PATCH}[libcxx] Scan-Build Run complete, patch and report

Steve MacKenzie stevemac321 at live.com
Thu Oct 23 19:42:51 PDT 2014


forgot [PATCH] in subject and fixed typo, sorry...
On 10/23/2014 07:14 PM, Steve MacKenzie wrote:
> Summary:
> Number of warnings before this patch:450
> Number of warnings reduced by this patch:323
> Number of warnings uninvestigated: 0
> Regression Testing: no regressions found (x64 Linux, release, debug, 
> links to logs below)

>
> Bugs found:
> "Bug 
> ID","Product","Component","Assignee","Status","Resolution","Summary","Changed"
> 21326,"clang","Static 
> Analyzer","kremenek at apple.com","NEW","---","False position CERT MEM04 
> zero-length allocation error","2014-10-21 14:13:26"
> 21333,"clang","Static 
> Analyzer","kremenek at apple.com","NEW","---","false positive smartptr 
> release (unique_ptr) in std::<memory>","2014-10-21 18:55:49"
> 21335,"clang","Static 
> Analyzer","kremenek at apple.com","NEW","---","False positive scoping 
> issues, deref pointer, dead init, uninit arg, val, etc.","2014-10-21 
> 19:45:51"
> 21342,"clang","Static 
> Analyzer","kremenek at apple.com","NEW","---","False positive: 
> std::valarray standard conforming operator[] triggers null reference 
> warning","2014-10-22 15:56:16"
> 21344,"clang","Static 
> Analyzer","kremenek at apple.com","NEW","---","False positive garbage 
> value reported in std::<random> param_type in distribution 
> templates","2014-10-22 20:11:07"
>
> Links:
> Instructions on how to do a scan-build run against libc++: 
> http://1drv.ms/1wfR37J  This mirrors the steps that I took to validate 
> the patch.
>
> Regerssion Testing Logs;
> Release Baseline: http://1drv.ms/1D290FF
> Released Patched: http://1drv.ms/12mcOGr
> Scan-build baseline: http://1drv.ms/1D290FF
> Scan-build patched: http://1drv.ms/1tPy5EL
> Related False Positive Warnings (with associated bugs): 
> http://1drv.ms/12mkOHo
>
> Details:
> The warning count was at 450 when the work on this patch started. The 
> patch fixes 323 of those warnings.
>
> I am recommending 3 minor changes to the libc++ headers.  The fixes 
> consist of merely initializing 2 variables in <random> and one 
> variable in <regex>.  While these uninitialized variables assessed 
> individually seem benign, they have a cascading affect that manifest 
> downstream as "garbage value" warnings.
>
> There was a significant amount of noise created by uninitialized and 
> unused variables, mostly in tests.  There was one somewhat interesting 
> issue, the tool triggered a CERT MEM04, passing zero size to realloc 
> warning (see bug:21326 for details).
>
> Also, this activity is confined to scan-build warnings, it does not 
> include fixing general compiler warnings or already failing tests.
>
> There will probably need to be some follow up pending the resolution 
> of the false-positive scan-build bugs.  Those issues are captured 
> here: http://1drv.ms/12mkOHo
>
> It is likely that for future runs, we'll need some sort of tooling for 
> filtering out "won't fix" issues.
>
> Thanks,
> Steve MacKenzie
> http://stevemac123.wordpress.com/
>
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141023/2c69f28c/attachment.html>


More information about the cfe-commits mailing list