There were some duplicated efforts (see bug 179775) with different people creating conflicting patches aiming at reducing the number of warning in Mozilla, so a general anti-warning tracking bug might be useful. Right now brad TBox lists 1269 warning. If we count duplicates (a header file warning replicated for every C/C++ file that include the header) only once, there are about 688 warnings. The current distribution by "kind" is roughly following: 184 Unused variable `...' 125 `...' might be used uninitialized in this function 62 `...' defined but not used 58 Choosing `...' over `...' For conversion from `...' to `...' Because conversion sequence for the argument is better 54 Comparison between signed and unsigned 44 ...was hidden by `...' 32 ANSI C forbids braced-groups within expressions 14 Return of negative value `...' to `...' Negative integer implicitly converted to unsigned type 10 Multi-character character constant 8 Value computed is not used 8 Suggest parentheses around assignment used as truth value 8 `...' is usually a function 6 ANSI does not permit the keyword `...' 5 Will be re-ordered to match declaration order 5 Using synthesized `...' for copy assignment 5 Missing initializer (near initialization for `...') 5 Member initializers for `...' 5 Enumeration value `...' not handled in switch 5 Converting NULL to non-pointer type 5 Assignment of negative value `...' to `...' Negative integer implicitly converted to unsigned type 5 And `...' 4 `...' has virtual functions but non-virtual destructor 3 Assignment to `...' from `...' 2 `...' within comment 2 Where cfront would use `...' 2 Left shift count >= width of type 2 Label `...' defined but not used 2 Converting of negative value `...' to `...' Negative integer implicitly converted to unsigned type 1 ...was hidden by `...' ...was hidden by `...' 1 String constant runs past end of line 1 Precision used with `...' format 1 Passing arg 1 of `...' discards qualifiers from pointer target type 1 Negative integer implicitly converted to unsigned type 1 Long unsigned int format, PRUint32 arg (arg 3) 1 Initialization to `...' from `...' 1 Initialization of negative value `...' to `...' Negative integer implicitly converted to unsigned type 1 Ignoring pragma: 1 `...' declared `...' but never defined 1 Decimal integer constant is so large that it is unsigned 1 Control reaches end of non-void function `...' 1 Control reaches end of non-void function 1 Char format, void arg (arg 2) 1 Argument `...' might be clobbered by `...' or `...' 1 ANSI C does not support the `...' length modifier 1 ANSI C does not allow extra `...' outside of a function 1 Aggregate has a partly bracketed initializer P.S. To simplify things, for those classes of warnings that have their own tracking bugs (such as bug 59652 for "uninitialized" warnings and 179028 for "hides" warnings), I only list the tracking bug as a dependency (see the dependency tree if you want the complete list).
*** Bug 228464 has been marked as a duplicate of this bug. ***
Back in 2003 it was written: > Right now brad TBox lists 1269 warning. If we count duplicates (a header file > warning replicated for every C/C++ file that include the header) only once, > there are about 688 warnings. The current distribution by "kind" is roughly > following: After fixing about 100 warnings on my own, I was guided to this bug entry. Today there are 1676 on my own compilation of TB3 using comm-central under linux, and unique warnings are 847. There were about 50-60 warnings of the nature as follows. These are newcomers which were not in the list above. $MOZSRC/mozilla/editor/libeditor/html/nsHTMLEditor.cpp:5878:25: warning: invoking macro NS_ENSURE_SUCCESS argument 2: empty macro arguments are undefined in ISO C90 and ISO C++98 $MOZSRC/mozilla/editor/libeditor/html/nsHTMLEditor.cpp:5879:32: warning: invoking macro NS_ENSURE_TRUE argument 2: empty macro arguments are undefined in ISO C90 and ISO C++98 These have been fixed and be posted to either Bug 609210 or by creating additional bug entry. (I added 609210 in the Depends list.)
Apologies for the bugspam to all the newly added dependant bugs, but I feel that the current level of build warnings (eg 3100+ lines on win debug m-c tip, let alone other platforms) is beyond belief, so am starting on a crusade to eliminate them. Not only do the sheer number of existing warnings make it hard for contributors to work out if a patch has added more, but a proportion of them are potentially hiding real bugs (eg bug 659234). Once the count is down to a more sensible number, I'm hoping that bugs like bug 187015, bug 604850 or bug 513503 will be able to keep them more under control - and mean that people are no longer able to unknowingly add a bunch of warnings with each commit, instead having to fix them as they go.
In lieu of an automatic build warnings count on tinderbox/TBPL (a la bug 187015); for now I'm manually downloading build logs from various platforms (from try to ensure they get a clobber) and running through a script (based on one sent to me by Chiaki Ishikawa) to scan/summarise the warnings. The warning breakdown counts in the script are still a WIP (the compilers on each platform seem to like outputting the warnings in slightly different formats, so I'll need to work out the least false-positive regex), so for now, here's the summary. First figure is total build warning count, with the unique line count in parentheses. linux-debug: 1106 (700) linux-opt: 2785 (1023) linux64-debug: 1228 (785) linux64-opt: 3027 (1151) osx-debug: 647 (540) osx64-debug: 587 (483) osx64-opt: 2462 (1482) win-debug: 3149 (1660) win-opt: 3312 (1752) [Taken from a try job based on m-c 72331:821b5076d2c0 ~2011-07-05] I'll update this every now and again, to show the progress made by this meta.
5 years ago