All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: "Wodkowski,
	PawelX"
	<pawelx.wodkowski-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: error: value computed is not used
Date: Mon, 15 Dec 2014 14:26:53 +0100	[thread overview]
Message-ID: <3427289.cFFhb9tNHS@xps13> (raw)
In-Reply-To: <F6F2A6264E145F47A18AB6DF8E87425D12B79ECF-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>

2014-12-15 11:27, Wodkowski, PawelX:
> From: Thomas Monjalon [mailto:thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org]
> > 2014-12-08 15:26, Wodkowski, PawelX:
> > > From: Qiu, Michael
> > > > On 2014/12/8 19:00, Wodkowski, PawelX wrote:
> > > > >> lib/librte_pmd_enic/enic_main.c: In function 'enic_set_rsskey':
> > > > >> lib/librte_pmd_enic/enic_main.c:862:2: error: value computed is not used
> > > > >>
> > > > >> I dig out that, it was ome issue of  the macros rte_memcpy()
> > > > >> #define rte_memcpy(dst, src, n)              \
> > > > >>         ((__builtin_constant_p(n)) ?          \
> > > > >>         memcpy((dst), (src), (n)) :          \
> > > > >>         rte_memcpy_func((dst), (src), (n)))
> > > > >>
> > > > >> When I use only (n) instead of (__builtin_constant_p(n), it will pass( I
> > > > >> know that it was incorrect, just a experiment).
> > > > >>
> > > > >> But I try to use inline function instead of macros:
> > > > >> static inline void * rte_memcpy(void *dst, const void *src, size_t n)
> > > > >> {
> > > > >>         return __builtin_constant_p(n) ? memcpy(dst, src, n) :
> > > > >>                                          rte_memcpy_func(dst, src, n);
> > > > >> }
> > > > >>
> > > > >> It will pass:), and works, this could be one potential workaround fix.
> > > > >>
> > > > >> Who knows why? The root cause is what?
> > > > >>
> > > > >> I've no idea about this.
> > > > >>
> > > > > I got the same issue while ago. I don't remember exactly everything
> > > > > but my conclusion was that there was some bug in compiler. I think,
> > > > > when 'n' I constant and/or small compiler is inlining memcpy and throwing
> > > > > everything else (including returned value). In that case error is not
> > > > > produced (I think this is a bug in compiler). In other case it is computing
> > > > > some value calling memcpy or rte_ memcpy and you should at least
> > > > > explicitly throw it away by casting to void. I like solution with static
> > > >
> > > > Actually, I try to pass "n" as a Int value like 4, it still report this
> > > > error :)
> > >
> > > My workaround was:
> > > (void) rte_memcpy(...);
> > >
> > > But this is only a workaround.
> > 
> > It's not so bad.
> > 
> > > > > inline but someone else should spoke about possible side effects.
> > > >
> > > > Yes, but as I know inline is better than macros.
> > 
> > From the GCC manual:
> > "
> > You may use this built-in function in either a macro or an inline function.
> > However, if you use it in an inlined function and pass an argument of the
> > function as the argument to the built-in, GCC never returns 1 when you call
> > the inline function with a string constant or compound literal and does not
> > return 1 when you pass a constant numeric value to the inline function unless
> > you specify the -O option.
> > "
> > 
> > It seems the "inline fix" cannot be used.
> > 
> > I'm going to send a patch with Pawel's workaround.
> 
> And something like this?
> 
>  #define rte_memcpy(dst, src, n)              \
> -	((__builtin_constant_p(n)) ?          \
> +	({ (__builtin_constant_p(n)) ?          \
>  	memcpy((dst), (src), (n)) :          \
> -	rte_memcpy_func((dst), (src), (n)))
> +	rte_memcpy_func((dst), (src), (n)); })

What happens to the returned value after this change?
ptr = rte_memcpy(dst, src, n) + offset:

> 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? Do you to support -Wunused-value?

-- 
Thomas

  parent reply	other threads:[~2014-12-15 13:26 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-08  9:05 error: value computed is not used Qiu, Michael
     [not found] ` <533710CFB86FA344BFBF2D6802E60286C9D989-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-12-08 11:00   ` Wodkowski, PawelX
2014-12-08 15:23     ` Qiu, Michael
     [not found]       ` <533710CFB86FA344BFBF2D6802E60286C9DB8B-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-12-08 15:26         ` Wodkowski, PawelX
     [not found]           ` <F6F2A6264E145F47A18AB6DF8E87425D12B67782-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-12-15 10:54             ` Thomas Monjalon
2014-12-15 11:07               ` [PATCH] enic: fix build on SUSE 11 Thomas Monjalon
2014-12-15 11:27               ` error: value computed is not used Wodkowski, PawelX
     [not found]                 ` <F6F2A6264E145F47A18AB6DF8E87425D12B79ECF-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-12-15 13:26                   ` Thomas Monjalon [this message]
2014-12-15 13:47                     ` Wodkowski, PawelX
     [not found]                       ` <F6F2A6264E145F47A18AB6DF8E87425D12B79F59-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-12-15 14:16                         ` Thomas Monjalon
2014-12-15 15:44                           ` Wodkowski, PawelX
     [not found]                             ` <F6F2A6264E145F47A18AB6DF8E87425D12B79FC6-kPTMFJFq+rFP9JyJpTNKArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-12-15 16:35                               ` Ananyev, Konstantin
2014-12-15 16:00                           ` Ananyev, Konstantin
     [not found]                             ` <2601191342CEEE43887BDE71AB977258213C0D6A-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-12-15 16:40                               ` Thomas Monjalon
2014-12-15 17:03                           ` Jastrzebski, MichalX K
2014-12-16  0:49               ` Qiu, Michael
2014-12-09  9:19 ` Qiu, Michael
2014-12-10  9:26 ` Qiu, Michael

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=3427289.cFFhb9tNHS@xps13 \
    --to=thomas.monjalon-pdr9zngts4eavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=pawelx.wodkowski-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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.