[dpdk-dev] error: value computed is not used

Thomas Monjalon thomas.monjalon at 6wind.com
Mon Dec 15 17:40:04 CET 2014


2014-12-15 16:00, Ananyev, Konstantin:
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Thomas Monjalon
> > 2014-12-15 13:47, Wodkowski, PawelX:
> > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > 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


More information about the dev mailing list