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

Alex Bennée
2016-06-06T10:48:57Z

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

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