qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Felipe Franciosi <felipe@nutanix.com>
Cc: Markus Armbruster <armbru@redhat.com>,
	Pavel Dovgalyuk <dovgaluk@ispras.ru>,
	qemu-devel <qemu-devel@nongnu.org>,
	Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Subject: Re: [Qemu-devel] [PATCH] replay: Fix build with -Werror=unused-result
Date: Wed, 21 Sep 2016 11:07:18 +0100	[thread overview]
Message-ID: <20160921100718.GO15535@redhat.com> (raw)
In-Reply-To: <F2184EE4-2A52-4609-8681-E7D22F33735D@nutanix.com>

On Wed, Sep 21, 2016 at 10:00:23AM +0000, Felipe Franciosi wrote:
> 
> > On 21 Sep 2016, at 07:24, Markus Armbruster <armbru@redhat.com> wrote:
> > 
> > "Pavel Dovgalyuk" <dovgaluk@ispras.ru> writes:
> > 
> >>> From: Felipe Franciosi [mailto:felipe@nutanix.com]
> >>> If compiling with -Werror=unused-result, replay-internal.c won't build
> >>> due to a call to fwrite() where the returned value is ignored. A simple
> >>> cast to (void) is not sufficient on recent GCCs, so this fixes it.
> >>> 
> >>> Signed-off-by: Felipe Franciosi <felipe@nutanix.com>
> >>> ---
> >>> replay/replay-internal.c | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>> 
> >>> diff --git a/replay/replay-internal.c b/replay/replay-internal.c
> >>> index 5835e8d..6978d76 100644
> >>> --- a/replay/replay-internal.c
> >>> +++ b/replay/replay-internal.c
> >>> @@ -65,7 +65,7 @@ void replay_put_array(const uint8_t *buf, size_t size)
> >>> {
> >>>     if (replay_file) {
> >>>         replay_put_dword(size);
> >>> -        fwrite(buf, 1, size, replay_file);
> >>> +        (void)(fwrite(buf, 1, size, replay_file)+1);
> >>>     }
> >>> }
> >> 
> >> This looks very weird.
> 
> Oh I couldn't agree more. I hate this syntax. It is, however, the simplest way to get around this issue. See:
> http://stackoverflow.com/questions/11888594/ignoring-return-values-in-c

If we want to ignore return value reliably, lets just pull in the
ignore_value macro from gnulib which is known to work across GCC
versions


/* Normally casting an expression to void discards its value, but GCC
   versions 3.4 and newer have __attribute__ ((__warn_unused_result__))
   which may cause unwanted diagnostics in that case.  Use __typeof__
   and __extension__ to work around the problem, if the workaround is
   known to be needed.  */
#if 3 < __GNUC__ + (4 <= __GNUC_MINOR__)
# define ignore_value(x) \
    (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; }))
#else
# define ignore_value(x) ((void) (x))
#endif

GNULIB makes it availavble under LGPLv2.1+

eg used as:

   ignore_value(fwrite(buf, 1, size, replay_file));

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  parent reply	other threads:[~2016-09-21 10:07 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-20 17:08 [Qemu-devel] [PATCH] replay: Fix build with -Werror=unused-result Felipe Franciosi
2016-09-21  5:17 ` Pavel Dovgalyuk
2016-09-21  6:24   ` Markus Armbruster
2016-09-21 10:00     ` Felipe Franciosi
2016-09-21 10:03       ` Pavel Dovgalyuk
2016-09-21 10:07       ` Daniel P. Berrange [this message]
2016-09-21 10:12         ` Felipe Franciosi
2016-09-21 12:28           ` Felipe Franciosi
2016-09-21 12:31         ` Markus Armbruster
2016-09-21 13:55           ` Eric Blake
2016-09-21 14:26             ` Felipe Franciosi
2016-09-21 14:35               ` Daniel P. Berrange
2016-09-21 14:38                 ` Felipe Franciosi
2016-09-21 14:44                 ` Eric Blake
2016-09-21 15:28                 ` Markus Armbruster
2016-09-21 18:18                   ` Eric Blake
2016-09-22  8:00                     ` Daniel P. Berrange
2016-09-22 11:51                       ` Markus Armbruster
2016-09-22 13:30                         ` Eric Blake
2016-09-23  8:15                           ` Markus Armbruster
2016-09-23 13:02                             ` Felipe Franciosi
2016-09-21 14:42               ` Eric Blake
2016-09-21  9:17 ` no-reply

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=20160921100718.GO15535@redhat.com \
    --to=berrange@redhat.com \
    --cc=Pavel.Dovgaluk@ispras.ru \
    --cc=armbru@redhat.com \
    --cc=dovgaluk@ispras.ru \
    --cc=felipe@nutanix.com \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).