From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: error: value computed is not used Date: Mon, 15 Dec 2014 17:40:04 +0100 Message-ID: <3419060.OKF5rOINLD@xps13> References: <533710CFB86FA344BFBF2D6802E60286C9D989@SHSMSX101.ccr.corp.intel.com> <4008093.EPhAooubXd@xps13> <2601191342CEEE43887BDE71AB977258213C0D6A@IRSMSX105.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev-VfR2kkLFssw@public.gmane.org To: "Ananyev, Konstantin" Return-path: In-Reply-To: <2601191342CEEE43887BDE71AB977258213C0D6A-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 2014-12-15 16:00, Ananyev, Konstantin: > From: dev [mailto:dev-bounces-VfR2kkLFssw@public.gmane.org] On Behalf Of Thomas Monjalon > > 2014-12-15 13:47, Wodkowski, PawelX: > > > From: Thomas Monjalon [mailto:thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org] > > > > 2014-12-15 11:27, Wodkowski, PawelX: > > > > > Thomas, can you check build with EXTRA_CFLAG='-Wunused-value'. > > > > > > > > You mean EXTRA_CFLAGS (with a S). > > > > It fails in many locations. > > > > What's your point? > > > > > > I am just asking if this is an typo, error or intend to do statements with no effects like bellow. > > > > > > ixgbe_common.c:4429:3: error: statement with no effect [-Werror=unused-value] > > > > > > 4426: /* first pull in the header so we know the buffer length */ > > > 4427: for (bi = 0; bi < dword_len; bi++) { > > > 4428: buffer[bi] = IXGBE_READ_REG_ARRAY(hw, IXGBE_FLEX_MNG, bi); > > > 4429: IXGBE_LE32_TO_CPUS(&buffer[bi]); // <------ here > > > 4430 } > > > > It's an intent. On big endian CPU, this has an effect. > > Hmm, I think there is a bug in lib/librte_pmd_ixgbe/ixgbe/ixgbe_osdep.h: > #define IXGBE_LE32_TO_CPUS(_i) rte_le_to_cpu_32(_i) > > It probably should be: > #define IXGBE_LE32_TO_CPUS(_i) rte_le_to_cpu_32(*(_i)) > > Not much point to do byte swapping for the pointer. > And that what ixgbe BSD driver is doing. > > Though I still not sure why it is needed here, as the computed value is not used anyway. > What the author probably meant to do: > buffer[bi] = rte_le_to_cpu_32 (buffer[bi]); > To achieve that we need: > #define IXGBE_LE32_TO_CPUS(x) (*(x) = rte_le_to_cpu_32(*(x))) > Correct? Oh yes, you and Pawel are probably right. I was focusing on definition of IXGBE_LE32_TO_CPUS and have not seen the bug. > > > > Do you to support -Wunused-value? > > > > > > No, I just turned this on to check above change and was surprised what happened. > > > > Honestly, I don't know if there is a good fix for this warning. -- Thomas