qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: "Marc Marí" <marc.mari.barcelo@gmail.com>, qemu-devel@nongnu.org
Cc: "Stefan Hajnoczi" <stefanha@gmail.com>,
	"Peter Crosthwaite" <peter.crosthwaite@xilinx.com>,
	xen-devel@lists.xensource.com,
	"Andreas Färber" <afaerber@suse.de>,
	kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [PATCH v2 01/16] x86: Convert conditional compilation of debug printfs to regular ifs
Date: Tue, 13 May 2014 09:15:54 -0600	[thread overview]
Message-ID: <5372372A.7010709@redhat.com> (raw)
In-Reply-To: <1399964572-5376-2-git-send-email-marc.mari.barcelo@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2324 bytes --]

On 05/13/2014 01:02 AM, Marc Marí wrote:
> Modify debug macros to have the same format through the codebase and use regular
> ifs instead of ifdef.
> 
> As the debug printf is always put in code, some casting had to be added to avoid
> warnings treated as errors at compile time.

Umm, where in this patch did you add casting?  Don't add bogus lines to
the commit message (I was assuming that it might be a case where the
code has type mismatches, and where something like PRId32 would be
better than adding a cast - but couldn't find where that was. Maybe
other patches in the series are affected?)

> 
> Signed-off-by: Marc Marí <marc.mari.barcelo@gmail.com>
> ---

> -#define DEBUG(fmt, ...)                                       \
> -    do {                                                      \
> -        fprintf(stderr, "%s: " fmt, __func__ , __VA_ARGS__);  \
> -    } while (0)

The old code was line-wrapped to fit in 80 columns...

> +#define DEVICE_ASSIGNMENT_DEBUG_ENABLED 1
>  #else
> -#define DEBUG(fmt, ...)
> +#define DEVICE_ASSIGNMENT_DEBUG_ENABLED 0
>  #endif
>  
> +#define DEBUG(fmt, ...) QEMU_DPRINTF(DEVICE_ASSIGNMENT_DEBUG_ENABLED, "pci_assign", fmt, ## __VA_ARGS__)

the new code should probably try to do similar:

#define DEBUG(fmt, ...)						\
    QEMU_DPRINTF(DEVICE_ASSIGNMENT_DEBUG_ENABLED,		\
                 "pci_assign", fmt, ## __VA_ARGS__)

Although __VA_ARGS__ is required by C99, the use of ##__VA_ARGS__ is a
gcc extension; are you sure that all other supported compilers handle
it?  (I guess that's just clang)

If you want something portable to C99, just use one fewer macro
argument, so that you are guaranteed that __VA_ARGS__ will be non-empty
(that is, subsume fmt into the ...):

#define DEBUG(...)						\
    QEMU_DPRINTF(DEVICE_ASSIGNMENT_DEBUG_ENABLED,		\
                 "pci_assign", __VA_ARGS__)


>  
> +#define mb_debug(a...) QEMU_DPRINTF(DEBUG_MULTIBOOT_ENABLED, "i386 multiboot", a)

Use of 'a...' as a named var-arg parameter is a gcc extension, not
portable to C99.  Again, will this compile on non-gcc?  Unnamed ...
coupled with __VA_ARGS__ is the only fully portable way to do var-args.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org




[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  parent reply	other threads:[~2014-05-13 15:16 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-13  7:02 [Qemu-devel] [PATCH v2 00/16] Convert conditional compilation of debug printfs Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 01/16] x86: Convert conditional compilation of debug printfs to regular ifs Marc Marí
2014-05-13  7:38   ` Andreas Färber
2014-05-13 15:15   ` Eric Blake [this message]
     [not found]   ` <53722E62.8000304@redhat.com>
2014-05-15  9:56     ` Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 02/16] s390: " Marc Marí
2014-05-13  9:04   ` Cornelia Huck
2014-05-13 14:45   ` Eric Blake
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 03/16] scsi: " Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 04/16] highbank: " Marc Marí
2014-05-13 10:06   ` Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 05/16] xilinx: " Marc Marí
2014-05-13  9:59   ` Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 06/16] spapr: " Marc Marí
2014-05-13  7:18   ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 07/16] stellaris: " Marc Marí
2014-05-13 15:05   ` Eric Blake
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 08/16] tpm: " Marc Marí
2014-05-13  9:39   ` Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 09/16] i82374: " Marc Marí
2014-05-13  9:20   ` Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 10/16] i8257: " Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 11/16] rc4030: " Marc Marí
2014-05-13  9:16   ` Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 12/16] sd: " Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 13/16] isa: " Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 14/16] lan9118: " Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 15/16] pci-host: " Marc Marí
2014-05-13  9:13   ` Marc Marí
2014-05-13  7:02 ` [Qemu-devel] [PATCH v2 16/16] common: " Marc Marí
2014-05-13  9:05   ` Cornelia Huck
2014-05-13 15:21   ` Eric Blake

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=5372372A.7010709@redhat.com \
    --to=eblake@redhat.com \
    --cc=afaerber@suse.de \
    --cc=kvm@vger.kernel.org \
    --cc=marc.mari.barcelo@gmail.com \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=xen-devel@lists.xensource.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 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).