From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [DPDK/core Bug 1952] hash: build fails with LTO
Date: Thu, 04 Jun 2026 07:46:48 +0000 [thread overview]
Message-ID: <bug-1952-3@http.bugs.dpdk.org/> (raw)
http://bugs.dpdk.org/show_bug.cgi?id=1952
Bug ID: 1952
Summary: hash: build fails with LTO
Product: DPDK
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: core
Assignee: bruce.richardson@intel.com
Reporter: david.marchand@redhat.com
CC: dev@dpdk.org, konstantin.v.ananyev@yandex.ru,
ktraynor@redhat.com, vladimir.medvedkin@intel.com
Target Milestone: ---
It is similar to a previous report, that resulting in silencing associated
warnings in dea4c5415506 ("ring: silence GCC 12 warnings").
For now, I associate the issue to the hash library, though the problem may be
on the ring library side.
Minimal reproducer:
# rm -rf build; meson setup build -Db_lto=true -Dcpu_instruction_set=generic
-Doptimization=0 -Ddisable_libs=* -Denable_apps=test-pmd
-Denable_drivers=net/null -Ddeveloper_mode=disabled && ninja -C build
...
The Meson build system
Version: 1.7.2
...
Project version: 26.07.0-rc0
C compiler for the host machine: ccache cc (gcc 15.2.1 "cc (GCC) 15.2.1
20260123 (Red Hat 15.2.1-7)")
C linker for the host machine: cc ld.bfd 2.44-12
...
Found pkg-config: YES (/usr/bin/pkg-config) 2.3.0
...
Compiler for C supports arguments -ffat-lto-objects: YES
...
Found ninja-1.12.1 at /usr/bin/ninja
ninja: Entering directory `build'
[280/284] Linking target lib/librte_hash.so.26.2
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_create’ at ../lib/hash/rte_cuckoo_hash.c:375:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_create’:
../lib/hash/rte_cuckoo_hash.c:184:18: note: source object ‘i’ of size 4
184 | uint32_t i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_create’ at ../lib/hash/rte_cuckoo_hash.c:524:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_create’:
../lib/hash/rte_cuckoo_hash.c:184:18: note: source object ‘i’ of size 4
184 | uint32_t i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_reset’ at ../lib/hash/rte_cuckoo_hash.c:730:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_reset’:
../lib/hash/rte_cuckoo_hash.c:693:32: note: source object ‘i’ of size 4
693 | uint32_t tot_ring_cnt, i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_reset’ at ../lib/hash/rte_cuckoo_hash.c:735:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_reset’:
../lib/hash/rte_cuckoo_hash.c:693:32: note: source object ‘i’ of size 4
693 | uint32_t tot_ring_cnt, i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘enqueue_slot_back’ at ../lib/hash/rte_cuckoo_hash.c:761:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘enqueue_slot_back’:
../lib/hash/rte_cuckoo_hash.c:755:26: note: source object ‘slot_id’ of size 4
755 | uint32_t slot_id)
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘__rte_ring_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:298:2,
inlined from ‘__rte_ring_do_dequeue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:466:2,
inlined from ‘rte_ring_sc_dequeue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:344:9,
inlined from ‘rte_ring_sc_dequeue_elem’ at
../lib/ring/rte_ring_elem.h:444:9,
inlined from ‘alloc_slot’ at ../lib/hash/rte_cuckoo_hash.c:1098:7:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: ‘memcpy’ writing 32 bytes into
a region of size 4 overflows the destination [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘alloc_slot’:
../lib/hash/rte_cuckoo_hash.c:1078:18: note: destination object ‘slot_id’ of
size 4
1078 | uint32_t slot_id;
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘__rte_ring_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:298:2,
inlined from ‘__rte_ring_do_dequeue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:466:2,
inlined from ‘rte_ring_sc_dequeue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:344:9,
inlined from ‘rte_ring_sc_dequeue_elem’ at
../lib/ring/rte_ring_elem.h:444:9,
inlined from ‘__rte_hash_add_key_with_hash’ at
../lib/hash/rte_cuckoo_hash.c:1260:6:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: ‘memcpy’ writing 32 bytes into
a region of size 4 overflows the destination [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__rte_hash_add_key_with_hash’:
../lib/hash/rte_cuckoo_hash.c:1114:18: note: destination object ‘ext_bkt_id’ of
size 4
1114 | uint32_t ext_bkt_id = 0;
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘__rte_ring_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:298:2,
inlined from ‘__rte_ring_do_dequeue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:466:2,
inlined from ‘rte_ring_sc_dequeue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:344:9,
inlined from ‘rte_ring_sc_dequeue_elem’ at
../lib/ring/rte_ring_elem.h:444:9,
inlined from ‘__rte_hash_add_key_with_hash’ at
../lib/hash/rte_cuckoo_hash.c:1267:5:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: ‘memcpy’ writing 32 bytes into
a region of size 4 overflows the destination [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__rte_hash_add_key_with_hash’:
../lib/hash/rte_cuckoo_hash.c:1114:18: note: destination object ‘ext_bkt_id’ of
size 4
1114 | uint32_t ext_bkt_id = 0;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘__hash_rcu_qsbr_free_resource’ at
../lib/hash/rte_cuckoo_hash.c:1616:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 12 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__hash_rcu_qsbr_free_resource’:
../lib/hash/rte_cuckoo_hash.c:1592:40: note: at offset [4, 16] into source
object ‘rcu_dq_entry’ of size 16
1592 | struct __rte_hash_rcu_dq_entry rcu_dq_entry =
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘__rte_hash_del_key_with_hash’ at
../lib/hash/rte_cuckoo_hash.c:1899:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__rte_hash_del_key_with_hash’:
../lib/hash/rte_cuckoo_hash.c:1831:18: note: source object ‘index’ of size 4
1831 | uint32_t index = EMPTY_SLOT;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_free_key_with_position’ at
../lib/hash/rte_cuckoo_hash.c:1981:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_free_key_with_position’:
../lib/hash/rte_cuckoo_hash.c:1978:26: note: source object ‘index’ of size 4
1978 | uint32_t index = h->ext_bkt_to_free[position];
| ^
[284/284] Linking target app/dpdk-testpmd
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_create’ at ../lib/hash/rte_cuckoo_hash.c:375:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_create’:
../lib/hash/rte_cuckoo_hash.c:184:18: note: source object ‘i’ of size 4
184 | uint32_t i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_create’ at ../lib/hash/rte_cuckoo_hash.c:524:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_create’:
../lib/hash/rte_cuckoo_hash.c:184:18: note: source object ‘i’ of size 4
184 | uint32_t i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_reset’ at ../lib/hash/rte_cuckoo_hash.c:730:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_reset’:
../lib/hash/rte_cuckoo_hash.c:693:32: note: source object ‘i’ of size 4
693 | uint32_t tot_ring_cnt, i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_reset’ at ../lib/hash/rte_cuckoo_hash.c:735:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_reset’:
../lib/hash/rte_cuckoo_hash.c:693:32: note: source object ‘i’ of size 4
693 | uint32_t tot_ring_cnt, i;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘enqueue_slot_back’ at ../lib/hash/rte_cuckoo_hash.c:761:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘enqueue_slot_back’:
../lib/hash/rte_cuckoo_hash.c:755:26: note: source object ‘slot_id’ of size 4
755 | uint32_t slot_id)
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘__rte_ring_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:298:2,
inlined from ‘__rte_ring_do_dequeue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:466:2,
inlined from ‘rte_ring_sc_dequeue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:344:9,
inlined from ‘rte_ring_sc_dequeue_elem’ at
../lib/ring/rte_ring_elem.h:444:9,
inlined from ‘alloc_slot’ at ../lib/hash/rte_cuckoo_hash.c:1098:7:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: ‘memcpy’ writing 32 bytes into
a region of size 4 overflows the destination [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘alloc_slot’:
../lib/hash/rte_cuckoo_hash.c:1078:18: note: destination object ‘slot_id’ of
size 4
1078 | uint32_t slot_id;
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘__rte_ring_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:298:2,
inlined from ‘__rte_ring_do_dequeue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:466:2,
inlined from ‘rte_ring_sc_dequeue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:344:9,
inlined from ‘rte_ring_sc_dequeue_elem’ at
../lib/ring/rte_ring_elem.h:444:9,
inlined from ‘__rte_hash_add_key_with_hash’ at
../lib/hash/rte_cuckoo_hash.c:1260:6:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: ‘memcpy’ writing 32 bytes into
a region of size 4 overflows the destination [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__rte_hash_add_key_with_hash’:
../lib/hash/rte_cuckoo_hash.c:1114:18: note: destination object ‘ext_bkt_id’ of
size 4
1114 | uint32_t ext_bkt_id = 0;
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘__rte_ring_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:298:2,
inlined from ‘__rte_ring_do_dequeue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:466:2,
inlined from ‘rte_ring_sc_dequeue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:344:9,
inlined from ‘rte_ring_sc_dequeue_elem’ at
../lib/ring/rte_ring_elem.h:444:9,
inlined from ‘__rte_hash_add_key_with_hash’ at
../lib/hash/rte_cuckoo_hash.c:1267:5:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: ‘memcpy’ writing 32 bytes into
a region of size 4 overflows the destination [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__rte_hash_add_key_with_hash’:
../lib/hash/rte_cuckoo_hash.c:1114:18: note: destination object ‘ext_bkt_id’ of
size 4
1114 | uint32_t ext_bkt_id = 0;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘__hash_rcu_qsbr_free_resource’ at
../lib/hash/rte_cuckoo_hash.c:1616:3:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 12 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__hash_rcu_qsbr_free_resource’:
../lib/hash/rte_cuckoo_hash.c:1592:40: note: at offset [4, 16] into source
object ‘rcu_dq_entry’ of size 16
1592 | struct __rte_hash_rcu_dq_entry rcu_dq_entry =
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘__rte_hash_del_key_with_hash’ at
../lib/hash/rte_cuckoo_hash.c:1899:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘__rte_hash_del_key_with_hash’:
../lib/hash/rte_cuckoo_hash.c:1831:18: note: source object ‘index’ of size 4
1831 | uint32_t index = EMPTY_SLOT;
| ^
In function ‘__rte_ring_enqueue_elems_128’,
inlined from ‘__rte_ring_do_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:141:3,
inlined from ‘__rte_ring_enqueue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:160:2,
inlined from ‘__rte_ring_do_enqueue_elem’ at
../lib/ring/rte_ring_elem_pvt.h:419:2,
inlined from ‘rte_ring_sp_enqueue_bulk_elem’ at
../lib/ring/rte_ring_elem.h:159:9,
inlined from ‘rte_ring_sp_enqueue_elem’ at
../lib/ring/rte_ring_elem.h:260:9,
inlined from ‘rte_hash_free_key_with_position’ at
../lib/hash/rte_cuckoo_hash.c:1981:4:
../lib/ring/rte_ring_elem_pvt.h:108:25: warning: ‘memcpy’ reading 32 bytes from
a region of size 4 [-Wstringop-overread]
108 | memcpy((void *)(ring + idx),
| ^
../lib/hash/rte_cuckoo_hash.c: In function ‘rte_hash_free_key_with_position’:
../lib/hash/rte_cuckoo_hash.c:1978:26: note: source object ‘index’ of size 4
1978 | uint32_t index = h->ext_bkt_to_free[position];
| ^
--
You are receiving this mail because:
You are on the CC list for the bug.
reply other threads:[~2026-06-04 7:46 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-1952-3@http.bugs.dpdk.org/ \
--to=bugzilla@dpdk.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.