Gitlab CI uses `--enable-werror` for its builds, but to improve backtraces with my recent address sanitizer experiments I am using these flags `-g -O1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fno-optimize-sibling-calls -fno-inline-functions` with both, gcc at the unix side and llvm-mingw at the pe side. Therefore these warnings would turn into errors.
This four patches are helping gcc at the unix side.
Would these patches be acceptable? Should they be separate merge requests?
<details> <summary>Details</summary>
``` ccache gcc -m64 -c -o tools/winebuild/utils.o .../wine/tools/winebuild/utils.c \ -Itools/winebuild -I.../wine/tools/winebuild -Iinclude \ -I.../wine/include -D__WINESRC__ -DWINE_UNIX_LIB -Wall -pipe \ -fcf-protection=none -fvisibility=hidden -fno-stack-protector -fno-strict-aliasing \ -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self -Wlogical-op \ -Wno-packed-not-aligned -Wpointer-arith -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \ -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wno-misleading-indentation -gdwarf-4 -Werror \ -g -O1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fno-optimize-sibling-calls -fno-inline-functions .../wine/tools/winebuild/utils.c: In function 'find_tool': .../wine/tools/winebuild/utils.c:230:8: error: 'file' may be used uninitialized [-Werror=maybe-uninitialized] 230 | if (!file && cc_command.count) file = find_clang_tool( cc_command, name ); | ^ .../wine/tools/winebuild/utils.c:214:17: note: 'file' was declared here 214 | const char *file; | ^~~~ cc1: all warnings being treated as errors make: *** [Makefile:610992: tools/winebuild/utils.o] Error 1
ccache gcc -m64 -c -o dlls/ntdll/unix/file.o .../wine/dlls/ntdll/unix/file.c -Idlls/ntdll \ -I.../wine/dlls/ntdll -Iinclude \ -I.../wine/include -D__WINESRC__ -DLTC_NO_PROTOTYPES \ -DLTC_SOURCE -D_NTSYSTEM_ -D_ACRTIMP= -DWINBASEAPI= -DWINE_UNIX_LIB \ -I/usr/include/x86_64-linux-gnu -Wall -pipe -fcf-protection=none -fvisibility=hidden \ -fno-stack-protector -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body \ -Wignored-qualifiers -Winit-self -Wlogical-op -Wno-packed-not-aligned -Wpointer-arith \ -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla \ -Wwrite-strings -Wno-misleading-indentation -gdwarf-4 -Werror -fPIC -fasynchronous-unwind-tables \ -g -O1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fno-optimize-sibling-calls -fno-inline-functions .../wine/dlls/ntdll/unix/file.c: In function 'NtReadFile': .../wine/dlls/ntdll/unix/file.c:5758:23: error: 'avail_mode' may be used uninitialized [-Werror=maybe-uninitialized] 5758 | if (total && avail_mode) | ~~~~~~^~~~~~~~~~~~~ .../wine/dlls/ntdll/unix/file.c:5755:18: note: 'avail_mode' was declared here 5755 | BOOL avail_mode; | ^~~~~~~~~~ cc1: all warnings being treated as errors make: *** [Makefile:318598: dlls/ntdll/unix/file.o] Error 1
ccache gcc -m64 -c -o dlls/sane.ds/unixlib.o .../wine/dlls/sane.ds/unixlib.c -Idlls/sane.ds \ -I.../wine/dlls/sane.ds -Iinclude \ -I.../wine/include -D__WINESRC__ -DWINE_UNIX_LIB -Wall -pipe \ -fcf-protection=none -fvisibility=hidden -fno-stack-protector -fno-strict-aliasing \ -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self -Wlogical-op \ -Wno-packed-not-aligned -Wpointer-arith -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \ -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wno-misleading-indentation -gdwarf-4 -Werror \ -fPIC -fasynchronous-unwind-tables -g -O1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fno-optimize-sibling-calls -fno-inline-functions .../wine/dlls/sane.ds/unixlib.c: In function 'read_data': .../wine/dlls/sane.ds/unixlib.c:332:8: error: 'status' may be used uninitialized [-Werror=maybe-uninitialized] 332 | if (status == SANE_STATUS_EOF) return TWCC_SUCCESS; | ^ .../wine/dlls/sane.ds/unixlib.c:321:17: note: 'status' was declared here 321 | SANE_Status status; | ^~~~~~ cc1: all warnings being treated as errors make: *** [Makefile:366624: dlls/sane.ds/unixlib.o] Error 1
ccache gcc -m64 -c -o server/directory.o .../wine/server/directory.c -Iserver \ -I.../wine/server -Iinclude \ -I.../wine/include -D__WINESRC__ -DWINE_UNIX_LIB -Wall -pipe \ -fcf-protection=none -fvisibility=hidden -fno-stack-protector -fno-strict-aliasing \ -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self -Wlogical-op \ -Wno-packed-not-aligned -Wpointer-arith -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \ -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wno-misleading-indentation -gdwarf-4 -Werror \ -g -O1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fno-optimize-sibling-calls -fno-inline-functions .../wine/server/directory.c: In function 'create_session': .../wine/server/directory.c:327:44: error: 'snprintf' output may be truncated before the last format character [-Werror=format-truncation=] 327 | snprintf( id_strA, sizeof(id_strA), "%u", id ); | ^ .../wine/server/directory.c:327:5: note: 'snprintf' output between 2 and 11 bytes into a destination of size 10 327 | snprintf( id_strA, sizeof(id_strA), "%u", id ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make: *** [Makefile:607457: server/directory.o] Error 1 ```
</details>