Warnings when compiling current master with gcc11
As discussed on IRC, current master throws a bunch of warnings when compiled using gcc11 (the current default in F34) but not when compiled with gcc10 (the current default in F33).
The warnings look as follows, they mostly are Warray-bounds
warnings:
[201/409] Compiling C object src/pipewire/libpipewire-0.3.so.0.324.0.p/impl-device.c.o
In file included from ../spa/include/spa/monitor/utils.h:32,
from ../src/pipewire/impl-device.c:28:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘pw_impl_device_for_each_param’ at ../src/pipewire/impl-device.c:342:8:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/pipewire/impl-device.c: In function ‘pw_impl_device_for_each_param’:
../src/pipewire/impl-device.c:325:25: note: ‘buffer’ declared here
325 | uint8_t buffer[1024];
| ^~~~~~
[217/409] Compiling C object src/pipewire/libpipewire-0.3.so.0.324.0.p/filter.c.o
In file included from ../spa/include/spa/node/utils.h:32,
from ../src/pipewire/filter.c:34:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘impl_port_enum_params’ at ../src/pipewire/filter.c:532:7:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/pipewire/filter.c: In function ‘impl_port_enum_params’:
../src/pipewire/filter.c:500:17: note: ‘buffer’ declared here
500 | uint8_t buffer[1024];
| ^~~~~~
[222/409] Compiling C object src/pipewire/libpipewire-0.3.so.0.324.0.p/impl-port.c.o
In file included from ../spa/include/spa/param/audio/format-utils.h:34,
from ../src/pipewire/impl-port.c:30:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘pw_impl_port_for_each_param’ at ../src/pipewire/impl-port.c:1160:8:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/pipewire/impl-port.c: In function ‘pw_impl_port_for_each_param’:
../src/pipewire/impl-port.c:1143:25: note: ‘buffer’ declared here
1143 | uint8_t buffer[1024];
| ^~~~~~
[224/409] Compiling C object src/pipewire/libpipewire-0.3.so.0.324.0.p/impl-node.c.o
In file included from ../spa/include/spa/pod/filter.h:33,
from ../src/pipewire/impl-node.c:34:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘pw_impl_node_for_each_param’ at ../src/pipewire/impl-node.c:1906:8:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/pipewire/impl-node.c: In function ‘pw_impl_node_for_each_param’:
../src/pipewire/impl-node.c:1889:25: note: ‘buffer’ declared here
1889 | uint8_t buffer[1024];
| ^~~~~~
[241/409] Compiling C object src/pipewire/libpipewire-0.3.so.0.324.0.p/stream.c.o
In file included from ../spa/include/spa/node/utils.h:32,
from ../src/pipewire/stream.c:34:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘impl_port_enum_params’ at ../src/pipewire/stream.c:568:7:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/pipewire/stream.c: In function ‘impl_port_enum_params’:
../src/pipewire/stream.c:539:17: note: ‘buffer’ declared here
539 | uint8_t buffer[1024];
| ^~~~~~
[293/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_client-endpoint_endpoint.c.o
In file included from ../spa/include/spa/pod/filter.h:33,
from ../src/modules/module-session-manager/client-endpoint/endpoint.c:32:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘endpoint_enum_params’ at ../src/modules/module-session-manager/client-endpoint/endpoint.c:81:7:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/client-endpoint/endpoint.c: In function ‘endpoint_enum_params’:
../src/modules/module-session-manager/client-endpoint/endpoint.c:62:17: note: ‘buffer’ declared here
62 | uint8_t buffer[1024];
| ^~~~~~
[295/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_client-endpoint_endpoint-stream.c.o
In file included from ../spa/include/spa/pod/filter.h:33,
from ../src/modules/module-session-manager/client-endpoint/endpoint-stream.c:32:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘endpoint_stream_enum_params’ at ../src/modules/module-session-manager/client-endpoint/endpoint-stream.c:79:7:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/client-endpoint/endpoint-stream.c: In function ‘endpoint_stream_enum_params’:
../src/modules/module-session-manager/client-endpoint/endpoint-stream.c:62:17: note: ‘buffer’ declared here
62 | uint8_t buffer[1024];
| ^~~~~~
[297/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_client-session_endpoint-link.c.o
In file included from ../spa/include/spa/pod/filter.h:33,
from ../src/modules/module-session-manager/client-session/endpoint-link.c:32:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘endpoint_link_enum_params’ at ../src/modules/module-session-manager/client-session/endpoint-link.c:79:7:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/client-session/endpoint-link.c: In function ‘endpoint_link_enum_params’:
../src/modules/module-session-manager/client-session/endpoint-link.c:62:17: note: ‘buffer’ declared here
62 | uint8_t buffer[1024];
| ^~~~~~
[298/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_endpoint-link.c.o
In file included from ../src/extensions/session-manager/introspect-funcs.h:30,
from ../src/modules/module-session-manager/endpoint-link.c:28:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘method_enum_params’ at ../src/modules/module-session-manager/endpoint-link.c:126:8:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/endpoint-link.c: In function ‘method_enum_params’:
../src/modules/module-session-manager/endpoint-link.c:106:17: note: ‘buffer’ declared here
106 | uint8_t buffer[1024];
| ^~~~~~
[301/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_endpoint-stream.c.o
In file included from ../src/extensions/session-manager/introspect-funcs.h:30,
from ../src/modules/module-session-manager/endpoint-stream.c:28:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘method_enum_params’ at ../src/modules/module-session-manager/endpoint-stream.c:126:8:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/endpoint-stream.c: In function ‘method_enum_params’:
../src/modules/module-session-manager/endpoint-stream.c:106:17: note: ‘buffer’ declared here
106 | uint8_t buffer[1024];
| ^~~~~~
[303/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_client-session_session.c.o
In file included from ../spa/include/spa/pod/filter.h:33,
from ../src/modules/module-session-manager/client-session/session.c:32:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘session_enum_params’ at ../src/modules/module-session-manager/client-session/session.c:79:7:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/client-session/session.c: In function ‘session_enum_params’:
../src/modules/module-session-manager/client-session/session.c:62:17: note: ‘buffer’ declared here
62 | uint8_t buffer[1024];
| ^~~~~~
[306/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_endpoint.c.o
In file included from ../src/extensions/session-manager/introspect-funcs.h:30,
from ../src/modules/module-session-manager/endpoint.c:28:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘method_enum_params’ at ../src/modules/module-session-manager/endpoint.c:126:8:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/endpoint.c: In function ‘method_enum_params’:
../src/modules/module-session-manager/endpoint.c:106:17: note: ‘buffer’ declared here
106 | uint8_t buffer[1024];
| ^~~~~~
[316/409] Compiling C object src/modules/libpipewire-module-session-manager.so.p/module-session-manager_session.c.o
In file included from ../src/extensions/session-manager/introspect-funcs.h:30,
from ../src/modules/module-session-manager/session.c:28:
In function ‘spa_pod_builder_raw’,
inlined from ‘spa_pod_builder_pad’ at ../spa/include/spa/pod/builder.h:155:16,
inlined from ‘spa_pod_builder_raw_padded’ at ../spa/include/spa/pod/builder.h:162:11,
inlined from ‘spa_pod_filter’ at ../spa/include/spa/pod/filter.h:383:9,
inlined from ‘method_enum_params’ at ../src/modules/module-session-manager/session.c:126:8:
../spa/include/spa/pod/builder.h:141:17: warning: ‘memcpy’ offset [1025, 9223372036854775807] is out of the bounds [0, 1024] of object ‘buffer’ with type ‘uint8_t[1024]’ {aka ‘unsigned char[1024]’} [-Warray-bounds]
141 | memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/modules/module-session-manager/session.c: In function ‘method_enum_params’:
../src/modules/module-session-manager/session.c:106:17: note: ‘buffer’ declared here
106 | uint8_t buffer[1024];
| ^~~~~~
[386/409] Compiling C object src/gst/libgstpipewire.so.p/gstpipewiresink.c.o
In file included from /usr/include/glib-2.0/glib/gthread.h:32,
from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
from /usr/include/glib-2.0/glib.h:32,
from /usr/include/gstreamer-1.0/gst/gst.h:27,
from ../src/gst/gstpipewiresink.h:28,
from ../src/gst/gstpipewiresink.c:39:
../src/gst/gstpipewiresink.c: In function ‘gst_pipewire_sink_mode_get_type’:
/usr/include/glib-2.0/glib/gatomic.h:117:5: warning: argument 2 of ‘__atomic_load’ discards ‘volatile’ qualifier [-Wincompatible-pointer-types]
117 | __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
| ^~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gthread.h:260:7: note: in expansion of macro ‘g_atomic_pointer_get’
260 | (!g_atomic_pointer_get (location) && \
| ^~~~~~~~~~~~~~~~~~~~
../src/gst/gstpipewiresink.c:82:7: note: in expansion of macro ‘g_once_init_enter’
82 | if (g_once_init_enter (&mode_type)) {
| ^~~~~~~~~~~~~~~~~
They were mainly identified as false positives, so maybe we can throw in some macros here to not have them appear as warnings?