Open
Bug 187528
(buildwarning)
Opened 21 years ago
Updated 6 months ago
[META] Fix compiler 'Build Warnings'
Categories
(Firefox Build System :: General, defect)
Firefox Build System
General
Tracking
(Not tracked)
NEW
People
(Reporter: mozilla-bugs, Unassigned)
References
(Depends on 30 open bugs)
Details
(Keywords: meta)
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).
Reporter | ||
Updated•21 years ago
|
Comment 1•20 years ago
|
||
*** Bug 228464 has been marked as a duplicate of this bug. ***
Updated•20 years ago
|
Updated•20 years ago
|
Updated•20 years ago
|
Updated•20 years ago
|
Updated•20 years ago
|
Comment 2•13 years ago
|
||
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.)
Depends on: 609210
Comment 3•13 years ago
|
||
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.
Severity: trivial → normal
Depends on: 35544, 215544, 221126, 230001, 239445, 243018, 243763, 301985, 301988, 302152, 323916, 326171, 326315, 330154, 331301, 331316, 362799, 368159, 370415, 388110, 389320, 395786, 399700, 413981, 433515, 439144, 445414, 447838, 449291, 450163, 450918, 452331, 454489, 454761, 456150, 457803, 461099, 463199, 467092, 469749, 474612, 481282, 488991, 491190, 491191, 494686, 495156, 501614, 502904, 503862, 514150, 514152, 514153, 514154, 521329, 527006, 551082, 552788, 552793, 552821, 557952, 558163, 560266, 562403, 562503, 563191, 563226, 567862, 567868, 568692, 568870, 571769, 572412, 577471, 579392, 581467, 581468, 581473, 581474, 581476, 581477, 581478, 581481, 582427, 582443, 583607, 585414, 587496, 589022, 589032, 592207, 592425, 595995, 598049, 598051, 598058, 602044, 605174, 605180, 609188, 609431, 609710, 610228, 610809, 612777, 613984, 615608, 616788, 616792, 618427, 620510, 630290, 637179, 637605, 637607, 639865, 643173, 646115, 646160, 652398, 653295, 654287, 654618, 654891, 654893, 658081, 660922, 661962, 666605, 666610, 666612, 666614, 666615, 666617, 666621, 666627, 666629, 666632, 666638, 666641, 666646, 666651, 666655, 666656, 666659, 666661, 666664, 666670, 666672, 666676, 666677, 666679, 666688, 669236
Updated•13 years ago
|
Alias: buildwarning
Comment 4•13 years ago
|
||
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.
Description
•