Build failure with `http1/soup-body-input-stream.c:234:21: error: argument 1 null where non-null expected [-Werror=nonnull]`
Initially reported downstream in Gentoo at https://bugs.gentoo.org/901455.
It needs -O3 to reproduce:
FAILED: libsoup/libsoup-3.0.so.0.6.0.p/http1_soup-body-input-stream.c.o
x86_64-pc-linux-gnu-gcc -m32 -mfpmath=sse -Ilibsoup/libsoup-3.0.so.0.6.0.p -Ilibsoup -I../libsoup-3.2.2/libsoup -I. -I../libsoup-3.2.2 -I../libsoup-3.2.2/libsoup/auth -I../libsoup-3.2.2/libsoup/cookies -I../libsoup-3.2.2/libsoup/content-decoder -I../libsoup-3.2.2/libsoup/hsts -I../libsoup-3.2.2/libsoup/http1 -I../libsoup-3.2.2/libsoup/http2 -I../libsoup-3.2.2/libsoup/server -I../libsoup-3.2.2/libsoup/server/http1 -I../libsoup-3.2.2/libsoup/server/http2 -I../libsoup-3.2.2/libsoup/websocket -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi/include -I/usr/include/libmount -I/usr/include/blkid -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu99 -D_DEFAULT_SOURCE -DHAVE_CONFIG_H -Wmissing-include-dirs -Wpointer-arith -Winit-self -Werror=missing-prototypes -Werror=implicit-function-declaration -Werror=aggregate-return -Werror=format=2 -Werror=return-type -Wincompatible-pointer-types -Wstrict-prototypes -Wno-format-zero-length -Wno-missing-include-dirs -Wno-unused-parameter -Wno-sign-compare -Wno-cast-function-type -Wno-missing-field-initializers -O3 -O3 -ggdb3 -Werror=implicit-function-declaration -Werror=implicit-int -Wreturn-type -Wformat -Wint-conversion -Waddress -Warray-bounds -Wfree-nonheap-object -Wimplicit-function-declaration -Wimplicit-int -Wincompatible-pointer-types -Wint-conversion -Wint-to-pointer-cast -Wmain -Wnonnull -Wodr -Wparentheses -Wreturn-type -Wsizeof-pointer-memaccess -Wstrict-aliasing -Wstring-compare -Wuninitialized -Wunused-value -Wvarargs -fPIC -pthread '-DG_LOG_DOMAIN="libsoup"' -DLIBSOUP_COMPILATION -MD -MQ libsoup/libsoup-3.0.so.0.6.0.p/http1_soup-body-input-stream.c.o -MF libsoup/libsoup-3.0.so.0.6.0.p/http1_soup-body-input-stream.c.o.d -o libsoup/libsoup-3.0.so.0.6.0.p/http1_soup-body-input-stream.c.o -c ../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c
In function ‘soup_body_input_stream_read_chunked’,
inlined from ‘read_internal’ at ../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c:267:10,
inlined from ‘soup_body_input_stream_skip’ at ../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c:298:16:
../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c:234:21: error: argument 1 null where non-null expected [-Werror=nonnull]
234 | if (strncmp (buffer, "\r\n", nread) || strncmp (buffer, "\n", nread)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:35,
from /usr/include/glib-2.0/glib.h:32,
from /usr/include/glib-2.0/glib/gi18n-lib.h:23,
from ../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c:14:
/usr/include/string.h: In function ‘soup_body_input_stream_skip’:
/usr/include/string.h:159:12: note: in a call to function ‘strncmp’ declared ‘nonnull’
159 | extern int strncmp (const char *__s1, const char *__s2, size_t __n)
| ^~~~~~~
In function ‘soup_body_input_stream_read_chunked’,
inlined from ‘read_internal’ at ../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c:267:10,
inlined from ‘soup_body_input_stream_skip’ at ../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c:298:16:
../libsoup-3.2.2/libsoup/http1/soup-body-input-stream.c:234:56: error: argument 1 null where non-null expected [-Werror=nonnull]
234 | if (strncmp (buffer, "\r\n", nread) || strncmp (buffer, "\n", nread)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h: In function ‘soup_body_input_stream_skip’:
/usr/include/string.h:159:12: note: in a call to function ‘strncmp’ declared ‘nonnull’
159 | extern int strncmp (const char *__s1, const char *__s2, size_t __n)
| ^~~~~~~
cc1: some warnings being treated as errors
Full log at https://bugs.gentoo.org/attachment.cgi?id=857975. Let me know if more information is required. I'm using GCC 13.0.1 20230312 but I can hit it with GCC 12.2.1 20230311 and older too.