Re: git: 5dda778db634 - main - Use correct function declaration for yyerror

From: Warner Losh <imp_at_bsdimp.com>
Date: Mon, 03 Jun 2024 18:38:50 UTC
On Mon, Jun 3, 2024 at 12:19 PM Jessica Clarke <jrtc27@freebsd.org> wrote:

> On 3 Jun 2024, at 19:14, Warner Losh <imp@FreeBSD.org> wrote:
> >
> > The branch main has been updated by imp:
> >
> > URL:
> https://cgit.FreeBSD.org/src/commit/?id=5dda778db63407214394c3cf63fb1312a4981024
> >
> > commit 5dda778db63407214394c3cf63fb1312a4981024
> > Author:     Dapeng Gao <dg612@cam.ac.uk>
> > AuthorDate: 2024-06-03 17:30:52 +0000
> > Commit:     Warner Losh <imp@FreeBSD.org>
> > CommitDate: 2024-06-03 18:14:10 +0000
> >
> >    Use correct function declaration for yyerror
> >
> >    According to the POSIX standard at
> >    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html
> >    `yyerror` should return `int`. Add unreachable since errx never
> returns.
> >
> >    Reviewed by:    imp, kib
> >    Differential Revision:  https://reviews.freebsd.org/D45447
> > ---
> > usr.sbin/config/config.y | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/usr.sbin/config/config.y b/usr.sbin/config/config.y
> > index a5a9e1546c36..148959fbff2e 100644
> > --- a/usr.sbin/config/config.y
> > +++ b/usr.sbin/config/config.y
> > @@ -88,7 +88,7 @@ int maxusers;
> >
> > #define ns(s) strdup(s)
> > int include(const char *, int);
> > -void yyerror(const char *s);
> > +int yyerror(const char *s);
> > int yywrap(void);
> >
> > static void newdev(char *name);
> > @@ -299,11 +299,13 @@ NoDevice:
> >
> > %%
> >
> > -void
> > +int
> > yyerror(const char *s)
> > {
> >
> > errx(1, "%s:%d: %s", yyfile, yyline + 1, s);
> > + __unreachable();
> > + return (0);
> > }
>
> This should just be:
>
> int
> yyerror(const char *s)
> {
>         errx(1, "%s:%d: %s", yyfile, yyline + 1, s);
> }
>
> errx is __dead2. See bin/expr/expr.y for an example of this in-tree.
>

OK. Wasn't sure, but you're comments remove all doubt in my mind. will fix.

Warner