From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56999) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b9s5e-00043q-8I for qemu-devel@nongnu.org; Mon, 06 Jun 2016 06:49:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b9s5Z-00045T-TO for qemu-devel@nongnu.org; Mon, 06 Jun 2016 06:49:01 -0400 Received: from mail-wm0-x231.google.com ([2a00:1450:400c:c09::231]:38385) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b9s5Y-000441-QF for qemu-devel@nongnu.org; Mon, 06 Jun 2016 06:48:57 -0400 Received: by mail-wm0-x231.google.com with SMTP id m124so66510181wme.1 for ; Mon, 06 Jun 2016 03:48:56 -0700 (PDT) From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <1465064165-14885-2-git-send-email-drjones@redhat.com> Date: Mon, 06 Jun 2016 11:49:09 +0100 Message-ID: <87d1nuiod6.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [kvm-unit-tests PATCH v2 01/10] lib: xstr: allow multiple args List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andrew Jones Cc: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, pbonzini@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, andre.przywara@arm.com, peter.maydell@linaro.org, christoffer.dall@linaro.org, marc.zyngier@arm.com Andrew Jones writes: > Signed-off-by: Andrew Jones > --- > lib/libcflat.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/libcflat.h b/lib/libcflat.h > index 582e3fc60e287..e5e588c742763 100644 > --- a/lib/libcflat.h > +++ b/lib/libcflat.h > @@ -27,8 +27,8 @@ > > #define __unused __attribute__((__unused__)) > > -#define xstr(s) xxstr(s) > -#define xxstr(s) #s > +#define xstr(s...) xxstr(s) > +#define xxstr(s...) #s OK my knowledge of stringinfication is still rusty despite having read the QEMU softmmu code. However: printf("Unknown subtest:" xstr(foo,ba) "\n"); Yields: Unknown subtestfoo,ba Is that what you wanted? Or were you aiming for xstr(foo,ba) => fooba As an aside I couldn't actually see xstr being called with multiple arguments in the source tree. > > #define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) > #define __ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a) - 1) -- Alex Bennée