https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106297
Bug ID: 106297 Summary: stringop-overflow misbehaviour on atomic Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: chipitsine at gmail dot com Target Milestone: --- repro steps git clone https://github.com/haproxy/haproxy cd haproxy export CC=/path/to/gcc make CC=$CC ERR=1 TARGET=linux-glibc error reported: src/haproxy.c: In function ‘run_poll_loop’: include/haproxy/atomic.h:428:39: error: ‘__atomic_load_8’ writing 8 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] 428 | #define _HA_ATOMIC_LOAD(val) __atomic_load_n(val, __ATOMIC_RELAXED) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/haproxy.c:2843:46: note: in expansion of macro ‘_HA_ATOMIC_LOAD’ 2843 | if ((_HA_ATOMIC_LOAD(&ha_tgroup_ctx[i].stopping_threads) & ha_tgroup_info[i].threads_enabled) != | ^~~~~~~~~~~~~~~ compilation terminated due to -Wfatal-errors. error was reviewed by Willy Tarreau in https://github.com/haproxy/haproxy/issues/1767 and it is considered as false positive. I bisected gcc, breaking change is: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=88b504b7a8c5affb0ffa97990d22af2b199e36ed