Signed-off-by: Rémi Bernon rbernon@codeweavers.com ---
GCC 11 is much more verbose with its array-bounds and stringop-overread warnings, and they are enabled by default.
Some of these lead to some genuine fixes like the first two patches here while some are a bit more dubious but easy to fix, like the last three patches.
Then there's a lot more additional array-bounds warnings emitted, caused by flexible array sizes which we define to 1 by default, in most cases.
When a variable is allocated with the array size set to 0, GCC emits a warning each time the variable is used, as it assumes any of its members may be accessed (although the first array member may not be accessed at all).
A possible fix for this would be to use true C99 flexible array sizes instead, but it then breaks a bunch of type size checks instead.
dlls/kernelbase/console.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c index c38e8e91955..a7eeb439232 100644 --- a/dlls/kernelbase/console.c +++ b/dlls/kernelbase/console.c @@ -1728,7 +1728,7 @@ HRESULT WINAPI CreatePseudoConsole( COORD size, HANDLE input, HANDLE output, DWO
if (!size.X || !size.Y || !ret) return E_INVALIDARG;
- if (!(pseudo_console = HeapAlloc( GetProcessHeap(), 0, HEAP_ZERO_MEMORY ))) return E_OUTOFMEMORY; + if (!(pseudo_console = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*pseudo_console) ))) return E_OUTOFMEMORY;
swprintf( pipe_name, ARRAY_SIZE(pipe_name), L"\\.\pipe\wine_pty_signal_pipe%x", GetCurrentThreadId() );