Andrew Jones <drjones@xxxxxxxxxx> writes: > On Mon, Jun 06, 2016 at 11:49:09AM +0100, Alex Bennée wrote: >> >> Andrew Jones <drjones@xxxxxxxxxx> writes: >> >> > Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> >> > --- >> > 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. Linux seems to have multiple local definitions of these stringyfy operations so it is a little unclear. Any additional clarity in $SUBJECT is welcome ;-) > > 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@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html -- Alex Bennée -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html