Message ID | 1465064165-14885-2-git-send-email-drjones@redhat.com |
---|---|
State | Superseded |
Headers | show |
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
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
Andrew Jones <drjones@redhat.com> writes: > 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. 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@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html -- Alex Bennée
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 #define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) #define __ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a) - 1)
Signed-off-by: Andrew Jones <drjones@redhat.com> --- lib/libcflat.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.4.11