Am 07.12.22 um 20:11 schrieb Stefan Weil:
On 12/7/22 14:24, Eric Auger wrote:
Initialize r0-3 to avoid compilation errors when
-Werror=maybe-uninitialized is used
../target/i386/ops_sse.h: In function ‘helper_vpermdq_ymm’:
../target/i386/ops_sse.h:2495:13: error: ‘r3’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
2495 | d->Q(3) = r3;
| ~~~~~~~~^~~~
../target/i386/ops_sse.h:2494:13: error: ‘r2’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
2494 | d->Q(2) = r2;
| ~~~~~~~~^~~~
../target/i386/ops_sse.h:2493:13: error: ‘r1’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
2493 | d->Q(1) = r1;
| ~~~~~~~~^~~~
../target/i386/ops_sse.h:2492:13: error: ‘r0’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
2492 | d->Q(0) = r0;
| ~~~~~~~~^~~~
Signed-off-by: Eric Auger <eric.au...@redhat.com>
Fixes: 790684776861 ("target/i386: reimplement 0x0f 0x3a, add AVX")
---
Am I the only one getting this? Or anything wrong in my setup.
Hi Eric,
no, you are not the only one. I regularly build with higher warning
levels, for example with -Weverything on macOS, and get a much longer
list which includes the mentioned warnings (see below).
The latest QEMU code produces 6780505 compiler warnings and a build log
file with 2.7 GB (!) with compiler option `-Weverything` on macOS.
Many warnings occur more than once, but there remain 193313 unique
warnings for the QEMU code (see
https://qemu.weilnetz.de/test/warnings-20221207.txt). Here is a list of
all kinds of warnings sorted by frequency:
1 -Wkeyword-macro
1 -Wundeclared-selector
1 -Wunreachable-code-loop-increment
1 -Wunused-but-set-parameter
2 -Wgnu-union-cast
2 -Woverlength-strings
3 -Walloca
5 -Wflexible-array-extensions
5 -Wstrict-selector-match
5 -Wstring-conversion
5 -Wtautological-value-range-compare
6 -Wcstring-format-directive
8 -Wstatic-in-inline
13 -Wobjc-messaging-id
13 -Wvla
14 -Wobjc-interface-ivars
16 -Wimplicit-float-conversion
17 -Wformat-nonliteral
24 -Wredundant-parens
39 -Wfloat-equal
44 -Wc++-compat
47 -Wzero-length-array
53 -Wdouble-promotion
53 -Wvariadic-macros
65 -Wpacked
74 -Wcomma
82 -Wunreachable-code-return
90 -Wformat-pedantic
90 -Wmissing-noreturn
94 -Wgnu-flexible-array-initializer
120 -Wcovered-switch-default
132 -Wdirect-ivar-access
136 -Wconditional-uninitialized
144 -Wgnu-designator
147 -Wdisabled-macro-expansion
150 -Wgnu-conditional-omitted-operand
161 -Wunreachable-code-break
184 -Wcompound-token-split-by-space
228 -Wfloat-conversion
248 -Wunreachable-code
348 -Wgnu-binary-literal
443 -Wshadow
534 -Wmissing-variable-declarations
563 -Wshift-sign-overflow
613 -Wembedded-directive
620 -Wgnu-zero-variadic-macro-arguments
742 -Wswitch-enum
843 -Wdocumentation
897 -Wgnu-case-range
1292 -Wassign-enum
1621 -Wgnu-empty-struct
1700 -Wextra-semi
1779 -Wpointer-arith
1847 -Wbad-function-cast
2176 -Wdocumentation-unknown-command
2221 -Wmissing-field-initializers
3101 -Wsign-compare
3238 -Wunused-macros
3559 -Wcast-align
4528 -Wcast-qual
7066 -Wgnu-statement-expression
7651 -Wnull-pointer-subtraction
7995 -Wimplicit-int-conversion
8854 -Wpadded
9737 -Wshorten-64-to-32
10596 -Wgnu-empty-initializer
13274 -Wlanguage-extension-token
13899 -Wunused-parameter
15642 -Wused-but-marked-unused
18669 -Wpedantic
44737 -Wsign-conversion