Re: [PATCH] vsprintf: Drop unused assignment of fmt.state

From: Andy Shevchenko
Date: Thu Feb 06 2025 - 10:32:46 EST


On Thu, Feb 06, 2025 at 01:25:07AM +0800, I Hsin Cheng wrote:
> Remove unused assignment of "fmt.state", in both cases the value of
> "fmt.state" will be overwritten by either "FORMAT_STATE_PRECISION" or
> "FORMAT_STATE_NUM", the value "FORMAT_STATE_NONE" isn't going to be used
> after the assignment.

...

> struct fmt format_decode(struct fmt fmt, struct printf_spec *spec)

> spec->field_width = -spec->field_width;
> spec->flags |= LEFT;
> }
> - fmt.state = FORMAT_STATE_NONE;
> +
> goto precision;
> }
>

While both are kinda redundant, this is not obvious what's stated in the commit
message. Yes, `goto qualifier;` is straightforward, but not `goto precision;`.
Which makes me think that these assignments can make code robust against
potential future changes to allow to catch up the wrong code paths.

Whatever maintainers decide, technically the change looks correct to me.

...

> if (spec->precision < 0)
> spec->precision = 0;
>
> - fmt.state = FORMAT_STATE_NONE;
> +

What's the reason to add an extra blank line? (We have already one here)

> goto qualifier;
> }

--
With Best Regards,
Andy Shevchenko