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","[email protected]","NEW","---","False position CERT MEM04 zero-length allocation error","2014-10-21 14:13:26" 21333,"clang","Static Analyzer","[email protected]","NEW","---","false positive smartptr release (unique_ptr) in std::<memory>","2014-10-21 18:55:49" 21335,"clang","Static Analyzer","[email protected]","NEW","---","False positive scoping issues, deref pointer, dead init, uninit arg, val, etc.","2014-10-21 19:45:51" 21342,"clang","Static Analyzer","[email protected]","NEW","---","False positive: std::valarray standard conforming operator[] triggers null reference warning","2014-10-22 15:56:16" 21344,"clang","Static Analyzer","[email protected]","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
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to