All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Cc: Richard Henderson <richard.henderson@linaro.org>,
	qemu-devel@nongnu.org, qemu-block@nongnu.org
Subject: Re: [PATCH 01/11] nbd/server: Remove unused variable
Date: Tue, 13 Jul 2021 08:14:38 -0500	[thread overview]
Message-ID: <20210713131438.hx2gp6v2jc2qvba3@redhat.com> (raw)
In-Reply-To: <20210713130134.zfti7sgxcw4i3dbd@redhat.com>

On Tue, Jul 13, 2021 at 08:01:34AM -0500, Eric Blake wrote:
> > > @@ -973,7 +973,6 @@ static int nbd_negotiate_meta_queries(NBDClient *client,
> > >   {
> > >       int ret;
> > >       g_autofree char *export_name = NULL;
> > > -    g_autofree bool *bitmaps = NULL;
> > >       NBDExportMetaContexts local_meta = {0};
> > Actually, "bitmaps" _is_ used, in cleanup handler, setup by g_autofree. So it's a false positive.
> >
> 
> Correct; this patch is wrong, and would cause a memory leak. This is a
> false positive in clang, and a known issue that clang is in general
> unable to see that g_autofree variables are used, sometimes for their
> intentional side effects such as easier memory cleanup as done here.
> 
> I suspect that the definition of g_autofree already uses
> __attribute__((unused)) to work around clang's oddities, which means
> I'm not sure how to silence clang on this one.

Hmm; in glib 2.68.2 (on Fedora 34), g_autofree does NOT include an
attribute unused.  Thus, does this silence the compiler?  (Even cooler
would be making the comment a link to an actual bug in the clang
database, but I couldn't quickly find one)

diff --git i/nbd/server.c w/nbd/server.c
index b60ebc3ab6ac..393cbd81c57a 100644
--- i/nbd/server.c
+++ w/nbd/server.c
@@ -973,7 +973,8 @@ static int nbd_negotiate_meta_queries(NBDClient *client,
 {
     int ret;
     g_autofree char *export_name = NULL;
-    g_autofree bool *bitmaps = NULL;
+    /* G_GNUC_UNUSED needed to work around a clang bug */
+    g_autofree G_GNUC_UNUSED bool *bitmaps = NULL;
     NBDExportMetaContexts local_meta = {0};
     uint32_t nb_queries;
     size_t i;


-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



  reply	other threads:[~2021-07-13 13:16 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-12 21:55 [PATCH 00/11] Fixes for clang-13 plus tcg/ppc Richard Henderson
2021-07-12 21:55 ` [PATCH 01/11] nbd/server: Remove unused variable Richard Henderson
2021-07-13  9:27   ` Vladimir Sementsov-Ogievskiy
2021-07-13 13:01     ` Eric Blake
2021-07-13 13:14       ` Eric Blake [this message]
2021-07-13 13:54         ` Richard Henderson
2021-07-12 21:55 ` [PATCH 02/11] accel/tcg: Remove unused variable in cpu_exec Richard Henderson
2021-07-13 16:27   ` Philippe Mathieu-Daudé
2021-07-12 21:55 ` [PATCH 03/11] util/selfmap: Discard mapping on error Richard Henderson
2021-07-13 16:06   ` Eric Blake
2021-07-13 17:10     ` Richard Henderson
2021-07-12 21:55 ` [PATCH 04/11] net/checksum: Remove unused variable in net_checksum_add_iov Richard Henderson
2021-07-12 21:55 ` [PATCH 05/11] hw/audio/adlib: Remove unused variable in adlib_callback Richard Henderson
2021-07-13 16:31   ` Philippe Mathieu-Daudé
2021-07-12 21:55 ` [PATCH 06/11] hw/ppc/spapr_events: Remove unused variable from check_exception Richard Henderson
2021-07-13  0:05   ` David Gibson
2021-07-12 21:55 ` [PATCH 07/11] hw/pci-hist/pnv_phb4: Fix typo in pnv_phb4_ioda_write Richard Henderson
2021-07-13  0:06   ` David Gibson
2021-07-12 21:55 ` [PATCH 08/11] linux-user/syscall: Remove unused variable from execve Richard Henderson
2021-07-13 13:57   ` Laurent Vivier
2021-07-12 21:55 ` [PATCH 09/11] tests/unit: Remove unused variable from test_io Richard Henderson
2021-07-13 16:30   ` Philippe Mathieu-Daudé
2021-07-12 21:55 ` [PATCH 10/11] tcg/ppc: Replace TCG_TARGET_CALL_DARWIN with _CALL_DARWIN Richard Henderson
2021-07-12 21:55 ` [PATCH 11/11] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF Richard Henderson
2021-08-14  5:27 ` [PATCH 00/11] Fixes for clang-13 plus tcg/ppc Brad Smith

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=20210713131438.hx2gp6v2jc2qvba3@redhat.com \
    --to=eblake@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=vsementsov@virtuozzo.com \
    /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.