Re: [kvm-unit-tests PATCH v2 01/10] lib: xstr: allow multiple args

Andrew Jones
2016-06-06T12:12:45Z

On Mon, Jun 06, 2016 at 11:49:09AM +0100, Alex Bennée wrote:
>
> Andrew Jones <drjones@redhat.com> writes:
>
> > Signed-off-by: Andrew Jones <drjones@redhat.com>
> > ---
> > 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

The way I did it (which is like Linux) is what I wanted, see Linux's
version in include/linux/stringify.h. I can correct $SUBJECT to make
that more clear if you like.

Thanks,
drew

>
> 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
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html