Re: git: 5dda778db634 - main - Use correct function declaration for yyerror
Date: Mon, 03 Jun 2024 18:19:44 UTC
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. Jess