Skip to content

Commit 3ae87c6

Browse files
committed
net: config: init: Suppress array bounds check warning temporarily
If ipv4_multicast_address[] is not set in the yaml config file, then compiler may emit this warning which looks like false positive: net/lib/config/init.c: In function 'ipv4_setup.constprop': net/lib/config/init.c:599:67: warning: offset '4294967279' outside bounds of constant string [-Warray-bounds] 599 | ret = parse_mask(ipv4->ipv4_multicast_addresses[j].value, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ In file included from zephyr/subsys/net/lib/config/init.c:2028: build/test/zephyr/include/generated/net_init_config.inc:137:37: note: 'net_init_config_data' declared here 137 | static const struct net_init_config net_init_config_data = { | ^~~~~~~~~~~~~~~~~~~~ If user has specified ipv4_multicast_addresses in the yaml file, there is no warning printed. Suppress this warning here temporarily before we find out why this happens. Signed-off-by: Jukka Rissanen <[email protected]>
1 parent 8b49055 commit 3ae87c6

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

subsys/net/lib/config/init.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,9 +579,30 @@ static void ipv4_setup(struct net_if *iface,
579579
continue;
580580
}
581581

582+
/* If ipv4_multicast_address[] is not set in the config file,
583+
* then compiler may emit this warning which looks like false positive:
584+
*
585+
* zephyr/subsys/net/lib/config/init.c: In function 'ipv4_setup.constprop':
586+
* zephyr/subsys/net/lib/config/init.c:599:67: warning: offset '4294967279' outside
587+
* bounds of constant string [-Warray-bounds]
588+
* 599 | ret = parse_mask(ipv4->ipv4_multicast_addresses[j].value,
589+
* | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
590+
* In file included from zephyr/subsys/net/lib/config/init.c:2028:
591+
* build/test/zephyr/include/generated/net_init_config.inc:137:37:
592+
* note: 'net_init_config_data' declared here
593+
* 137 | static const struct net_init_config net_init_config_data = {
594+
* | ^~~~~~~~~~~~~~~~~~~~
595+
*
596+
* If user has specified ipv4_multicast_addresses in the yaml file, there is no
597+
* warning printed.
598+
*
599+
* Suppress this warning here temporarily before we find out why this happens.
600+
*/
601+
TOOLCHAIN_DISABLE_WARNING(TOOLCHAIN_WARNING_ARRAY_BOUNDS);
582602
ret = parse_mask(ipv4->ipv4_multicast_addresses[j].value,
583603
strlen(ipv4->ipv4_multicast_addresses[j].value),
584604
(struct sockaddr *)&addr, NULL);
605+
TOOLCHAIN_ENABLE_WARNING(TOOLCHAIN_WARNING_ARRAY_BOUNDS);
585606
if (!ret) {
586607
NET_DBG("Invalid IPv%c %s address \"%s\"", '4', "multicast",
587608
ipv4->ipv4_addresses[j].value);

0 commit comments

Comments
 (0)