Open Bug 1394433 Opened 2 years ago Updated 2 days ago

[meta] Address warnings exposed by MinGW Build (gcc for windows)

Categories

(Core :: General, enhancement, P3)

Unspecified
Windows
enhancement

Tracking

()

People

(Reporter: tjr, Unassigned)

References

Details

(Keywords: meta)

The GCC MinGW build for Windows exposed a bunch of warnings that we should review and decide to silence, fix right now, or fix eventually.
See Also: → 1330608
> egrep "\[-W(.+)\]" all-warnings.log | grep -v /home/worker/workspace/build/src | egrep "\[-W(.+)\]" -o | sort | uniq -c | sort -n -r
> 
>  204 [-Wsign-compare]
>  113 [-Wswitch]
>   71 [-Wunused-variable]
>   65 [-Wunknown-pragmas]
>   35 [-Wunused-value]
>   33 [-Wunused-but-set-variable]
>   32 [-Wempty-body]
>   31 [-Wattributes]
>   30 [-Wreorder]
>   27 [-Woverloaded-virtual]
>   24 [-Wunused-function]
>   21 [-Wincompatible-pointer-types]
>   14 [-Wwrite-strings]
>   13 [-Wpointer-sign]
>   11 [-Wunused-result]
>   10 [-Wdeprecated-declarations]
>    9 [-Wtype-limits]
>    8 [-Wdiscarded-qualifiers]
>    7 [-Wnarrowing]
>    7 [-Wignored-qualifiers]
>    7 [-Wdelete-non-virtual-dtor]
>    7 [-Wconversion-null]
>    5 [-Wparentheses]
>    4 [-Wenum-compare]
>    4 [-Waddress]
>    3 [-Wimplicit-function-declaration]
>    2 [-Wunused-result] 
>    2 [-Wunused-local-typedefs]
>    2 [-Wsequence-point]
>    2 [-Wmultichar]
>    2 [-Wmissing-braces]
>    1 [-Wint-conversion]
>    1 [-Wformat-security]
> 
> egrep "\[-W(.+)\]" all-warnings.log | grep -v /home/worker/workspace/build/src  | egrep "warning: ([^/]+)/([^/]+)" -o | sort | uniq -c | sort -n -r
>  178 warning: security/nss
>  108 warning: nsprpub/pr
>   90 warning: gfx/2d
>   62 warning: gfx/cairo
>   33 warning: gfx/skia
>   30 warning: modules/pdfium
>   28 warning: dom/plugins
>   23 warning: widget/windows
>   22 warning: media/libvpx
>   19 warning: ipc/chromium
>   18 warning: gfx/vr
>   17 warning: intl/icu
>   16 warning: toolkit/xre
>   14 warning: gfx/layers
>   12 warning: gfx/angle
>   11 warning: dom/gamepad
>    9 warning: media/libav
>    7 warning: obj-firefox/dist
>    7 warning: media/libsoundtouch
>    7 warning: media/ffvpx
>    7 warning: gfx/thebes
>    7 warning: dom/media
>    5 warning: xpcom/io
>    5 warning: toolkit/components
>    4 warning: tools/profiler
>    4 warning: toolkit/mozapps
>    4 warning: security/manager
>    4 warning: netwerk/protocol
>    4 warning: mozglue/build
>    3 warning: xpcom/threads
>    3 warning: xpcom/components
>    3 warning: media/libjpeg
>    3 warning: media/gmp-clearkey
>    3 warning: js/src
>    3 warning: gfx/webrender_bindings
>    2 warning: xpcom/build
>    2 warning: xpcom/base
>    2 warning: uriloader/exthandler
>    2 warning: third_party/aom
>    2 warning: nsprpub/lib
>    2 warning: netwerk/system
>    2 warning: media/libyuv
>    2 warning: gfx/graphite2
>    1 warning: xpcom/windbgdlg
>    1 warning: netwerk/socket
>    1 warning: netwerk/dns
>    1 warning: netwerk/cache2
>    1 warning: netwerk/base
>    1 warning: modules/woff2
>    1 warning: modules/libmar
>    1 warning: media/libstagefright
>    1 warning: media/libspeex_resampler
>    1 warning: media/libmkv
>    1 warning: js/xpconnect
>    1 warning: ipc/mscom
>    1 warning: ipc/glue
>    1 warning: intl/hyphenation
>    1 warning: gfx/gl
>    1 warning: dom/ipc
>    1 warning: dom/base
After filtering NSS, fixing a bunch, and silencing some others, I have:

>  30 [-Wreorder]

Low priority

>  29 [-Wunused-value]
>  26 [-Wunused-but-set-variable]
>  21 [-Wunused-variable]

Lowest priority (probably going to ignore)


>  28 [-Wsign-compare]

Medium Priority

>  27 [-Woverloaded-virtual]
>   7 [-Wdelete-non-virtual-dtor]

High priority. Tracked in Bug 1394005

>  11 [-Wwrite-strings]

Lowest priority (probably going to ignore)

>  10 [-Wdeprecated-declarations]

These are all in intl/icu and media/ffvpx so going to ignore

>   10 [-Wunused-result]

High priority.

>   8 [-Wdiscarded-qualifiers]

Low priority

>   7 [-Wtype-limits]

Medium priority

>   7 [-Wnarrowing]

Low priority

>   7 [-Wconversion-null]

Low priority

>   6 [-Wignored-qualifiers]
>   4 [-Wparentheses]

Lowest priority (probably going to ignore)

>   4 [-Wenum-compare]

Spot check indicates these are intentional due to the coding style. So... going to ignore?

>   4 [-Waddress]

These all occur from gfx/skia/skia/src/core/SkTDPQueue.h:AccessResourceIndex So... going to ignore.

>   3 [-Wimplicit-function-declaration]

Occur in media/libstagefright and third_party/aom/ So... going to ignore.

>   2 [-Wunused-local-typedefs]

Occurs in generated protobuf code, so going to ignore

>   2 [-Wmultichar]
>   2 [-Wmissing-braces]

pdfium, ignoring


>   1 [-Wsequence-point]

High priority

>   1 [-Wincompatible-pointer-types]

media/ffvpx ignoring

>   1 [-Wformat-security]

false positive in my greps: 'cc1plus: warning: -Wformat-security ignored without -Wformat [-Wformat-security]'
OS: Unspecified → Windows
Marking P3 because this is a meta bug.
Priority: -- → P3
Summary: Address warnings exposed by MinGW Build (gcc for windows) → [meta] Address warnings exposed by MinGW Build (gcc for windows)
Depends on: 1403698
Depends on: 1403825
I investigated [-Wtype-limits]. They are all in third party code, except one in NSS and one in NSPR. 

The one in NSS appears to be a gcc bug (it's comparing 'unsigned long < ULONG_MAX' which is a valid comparison and does not trigger on a newer gcc).

The in NSPR is innocuous.
Depends on: 1404035
Depends on: 1404147
After upgrading to 6.4, updating the -central, filtering out nss, icu, pdfium, skia, angle, media/, cairo, and setting -Wno-switch, -Wno-write-strings, -Wno-unused-value, -Wno-unused-variable, -Wno-unused-but-set-variable, -Wno-ignored-qualifiers, and -Wno-parentheses  I have the following:

>  32 [-Wsign-compare]
>  27 [-Wreorder]
>   9 [-Wsubobject-linkage]
>   8 [-Wunused-result]
>   8 [-Wmisleading-indentation]
>   7 [-Wdelete-non-virtual-dtor]
>   4 [-Wenum-compare]
>   4 [-Wconversion-null]
>   3 [-Wnarrowing]
>   2 [-Wunused-result] 
>   2 [-Wunused-local-typedefs]
>   2 [-Wimplicit-function-declaration]
>   2 [-Wcomment]
>   2 [-Wsized-deallocation]
>   1 [-Woverloaded-virtual]

>  20 warning: dom/plugins
>  19 warning: toolkit/components
>  13 warning: widget/windows
>  12 warning: obj-firefox/dist
>   9 warning: gfx/layers
>   9 warning: dom/gamepad
>   8 warning: ipc/chromium
>   5 warning: gfx/thebes
>   3 warning: third_party/aom
>   3 warning: gfx/webrender_bindings
>   3 warning: gfx/graphite2
>   2 warning: gfx/2d
>   2 warning: browser/components
>   1 warning: toolkit/mozapps
>   1 warning: security/manager
>   1 warning: netwerk/socket
>   1 warning: gfx/gl
>   1 warning: dom/ipc
Depends on: 1406197
Depends on: 1406380
Depends on: 1406542
Depends on: 1406687
Depends on: 1407343
Depends on: 1409258
Depends on: 1409579
Depends on: 1409619
Depends on: 1409620
Depends on: 1410438
Depends on: 1411142
Depends on: 1411374
Depends on: 1411728
Depends on: 1411743
Depends on: 1412611
See Also: → 1463261
See Also: → 1581018
You need to log in before you can comment on or make changes to this bug.