Re: [PATCH v1 1/2] kstrtox: Make _parse_integer() take variadic arguments

From: Andy Shevchenko

Date: Wed Jun 03 2026 - 06:58:20 EST


On Wed, Jun 03, 2026 at 01:54:43PM +0300, Andy Shevchenko wrote:
> On Wed, Jun 03, 2026 at 11:37:50AM +0100, David Laight wrote:
> > On Tue, 2 Jun 2026 22:29:46 +0200
> > Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:

> > > Instead of having different functions that just use default parameters,
> > > combine those to use variadic arguments, so the user may call it using
> > > the same name.
> >
> > Adding a default final parameter can be done generically:
>
> Only one?
>
> > #define one(v) v
> > #define first(v, ...) v
> > #define dflt(d, ...) first(__VA_OPT__(one(__VA_ARGS__) ,) d)
> >
> > int foo(int, int);
> > #define foo(a, ...) foo(a, dflt(42, ## __VA_ARGS__))
> >
> > See: https://godbolt.org/z/x5aao7reK
>
> I know, we support some GCC versions that do not provide it.
>
> 551d44200152 ("default_gfp(): avoid using the "newfangled" __VA_OPT__ trick")

I stand corrected, it's all about sparse. Since this is the generic header,
I would also avoid using VA_OPT even if it allows more than one optional
argument.

--
With Best Regards,
Andy Shevchenko