From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4E1534284F for ; Mon, 27 Mar 2023 09:07:31 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 01FA94161A; Mon, 27 Mar 2023 09:07:31 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id C610240ED5; Mon, 27 Mar 2023 09:07:28 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 208944B3; Mon, 27 Mar 2023 00:08:12 -0700 (PDT) Received: from net-arm-n1amp-02.shanghai.arm.com (net-arm-n1amp-02.shanghai.arm.com [10.169.210.108]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3BDEF3F6C4; Mon, 27 Mar 2023 00:07:24 -0700 (PDT) From: Joyce Kong To: reshma.pattan@intel.com, stephen@networkplumber.org, konstantin.v.ananyev@yandex.ru Cc: dev@dpdk.org, nd@arm.com, Joyce Kong , stable@dpdk.org, Ruifeng Wang Subject: [PATCH] pdump: fix build issue with GCC 12 Date: Mon, 27 Mar 2023 07:07:12 +0000 Message-Id: <20230327070712.280265-1-joyce.kong@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org The following warning is observed with GCC12 compilation with release 20.11: In function ‘__rte_ring_enqueue_elems_64’, inlined from ‘__rte_ring_enqueue_elems’ at ../lib/librte_ring/rte_ring_elem.h:225:3, inlined from ‘__rte_ring_do_enqueue_elem’ at ../lib/librte_ring/rte_ring_elem.h:424:2, inlined from ‘rte_ring_mp_enqueue_burst_elem’ at ../lib/librte_ring/rte_ring_elem.h:884:9, inlined from ‘rte_ring_enqueue_burst_elem’ at ../lib/librte_ring/rte_ring_elem.h:946:10, inlined from ‘rte_ring_enqueue_burst’ at ../lib/librte_ring/rte_ring.h:721:9, inlined from ‘pdump_copy’ at ../lib/librte_pdump/rte_pdump.c:94:13: ../lib/librte_ring/rte_ring_elem.h:162:40: warning: ‘*dup_bufs.36_42 + _89’ may be used uninitialized [-Wmaybe-uninitialized] 162 | ring[idx] = obj[i]; | ~~~^~~ ../lib/librte_ring/rte_ring_elem.h:163:44: warning: ‘*dup_bufs.36_42 + _98’ may be used uninitialized [-Wmaybe-uninitialized] 163 | ring[idx + 1] = obj[i + 1]; | ~~~^~~~~~~ ../lib/librte_ring/rte_ring_elem.h:164:44: warning: ‘*dup_bufs.36_42 + _107’ may be used uninitialized [-Wmaybe-uninitialized] 164 | ring[idx + 2] = obj[i + 2]; | ~~~^~~~~~~ ../lib/librte_ring/rte_ring_elem.h:165:44: warning: ‘*dup_bufs.36_42 + _116’ may be used uninitialized [-Wmaybe-uninitialized] 165 | ring[idx + 3] = obj[i + 3]; | ~~~^~~~~~~ ../lib/librte_ring/rte_ring_elem.h:169:42: warning: ‘*dup_bufs.36_42 + _129’ may be used uninitialized [-Wmaybe-uninitialized] 169 | ring[idx++] = obj[i++]; /* fallthrough */ | ~~~^~~~~ ../lib/librte_ring/rte_ring_elem.h:171:42: warning: ‘*dup_bufs.36_42 + _139’ may be used uninitialized [-Wmaybe-uninitialized] 171 | ring[idx++] = obj[i++]; /* fallthrough */ | ~~~^~~~~ ../lib/librte_ring/rte_ring_elem.h:173:42: warning: ‘*dup_bufs.36_42 + _149’ may be used uninitialized [-Wmaybe-uninitialized] 173 | ring[idx++] = obj[i++]; Actually, this is an alias warning as -O3 enables strict alias. This patch fixes it by replacing 'dup_bufs' with '&dup_bufs[0]' as the compiler represents them differently. Fixes: 278f945402c5 ("pdump: add new library for packet capture") Cc: stable@dpdk.org Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- lib/pdump/rte_pdump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pdump/rte_pdump.c b/lib/pdump/rte_pdump.c index 9bc4bab4f2..53cca1034d 100644 --- a/lib/pdump/rte_pdump.c +++ b/lib/pdump/rte_pdump.c @@ -134,7 +134,7 @@ pdump_copy(uint16_t port_id, uint16_t queue, __atomic_fetch_add(&stats->accepted, d_pkts, __ATOMIC_RELAXED); - ring_enq = rte_ring_enqueue_burst(ring, (void *)dup_bufs, d_pkts, NULL); + ring_enq = rte_ring_enqueue_burst(ring, (void *)&dup_bufs[0], d_pkts, NULL); if (unlikely(ring_enq < d_pkts)) { unsigned int drops = d_pkts - ring_enq; -- 2.25.1