>From 93b2e58ebefc9b8929301889bc6ee7f8db68595d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 17 Oct 2019 11:50:34 -0700 Subject: [PATCH 10/11] regen --- src/parse-gram.c | 151 +++++++++++++++++++++++------------------------ src/parse-gram.h | 2 +- 2 files changed, 75 insertions(+), 78 deletions(-) diff --git a/src/parse-gram.c b/src/parse-gram.c index db2454c6..86cd782d 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.4.2.169-2644f. */ +/* A Bison parser, made by GNU Bison 3.4.2.189-f435. */ /* Bison implementation for Yacc-like parsers in C @@ -48,7 +48,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.4.2.169-2644f" +#define YYBISON_VERSION "3.4.2.189-f435" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -113,6 +113,7 @@ #include "files.h" #include "getargs.h" #include "gram.h" + #include "intprops.h" #include "named-ref.h" #include "quotearg.h" #include "reader.h" @@ -208,13 +209,10 @@ so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ -# ifndef INT_MAX -# include /* INFRINGES ON USER NAME SPACE */ -# endif -# ifndef PTRDIFF_MAX -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include /* INFRINGES ON USER NAME SPACE */ -# endif +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H # endif #endif @@ -225,7 +223,7 @@ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined INT_LEAST8_MAX +#elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; @@ -233,7 +231,7 @@ typedef signed char yytype_int8; #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined INT_LEAST16_MAX +#elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; @@ -241,7 +239,7 @@ typedef short yytype_int16; #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined UINT_LEAST8_MAX \ +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX @@ -252,7 +250,7 @@ typedef short yytype_uint8; #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined UINT_LEAST16_MAX \ +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX @@ -295,10 +293,11 @@ typedef int yytype_uint16; #define YYSIZEOF(X) ((YYPTRDIFF_T) sizeof (X)) +/* Stored state numbers (used for stacks). */ +typedef yytype_uint8 yy_state_t; -/* State numbers. */ -typedef yytype_uint8 yy_state_num; - +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -312,22 +311,20 @@ typedef yytype_uint8 yy_state_num; # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else -# define YY_ATTRIBUTE(Spec) /* empty */ +# define YY_ATTRIBUTE_PURE # endif #endif -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ @@ -412,7 +409,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yy_state_num yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; @@ -423,7 +420,7 @@ union yyalloc /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_num) + YYSIZEOF (YYSTYPE) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) @@ -493,19 +490,19 @@ union yyalloc /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 291, 291, 300, 301, 305, 306, 312, 316, 321, - 322, 327, 328, 329, 330, 331, 336, 341, 342, 343, - 344, 345, 346, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 358, 359, 368, 369, 373, 384, 388, 392, - 400, 410, 411, 421, 422, 428, 441, 441, 446, 446, - 451, 455, 465, 466, 467, 468, 472, 473, 478, 479, - 483, 484, 488, 489, 490, 503, 512, 516, 520, 528, - 529, 533, 546, 547, 559, 563, 567, 575, 577, 582, - 589, 599, 603, 607, 615, 616, 624, 625, 631, 632, - 633, 640, 640, 648, 649, 650, 655, 658, 660, 662, - 664, 666, 668, 670, 672, 674, 679, 680, 689, 713, - 714, 715, 716, 728, 730, 757, 762, 763, 768, 777, - 778, 782, 783 + 0, 292, 292, 301, 302, 306, 307, 313, 317, 322, + 323, 328, 329, 330, 331, 332, 337, 342, 343, 344, + 345, 346, 347, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 359, 360, 369, 370, 374, 385, 389, 393, + 401, 411, 412, 422, 423, 429, 442, 442, 447, 447, + 452, 456, 466, 467, 468, 469, 473, 474, 479, 480, + 484, 485, 489, 490, 491, 504, 513, 517, 521, 529, + 530, 534, 547, 548, 560, 564, 568, 576, 578, 583, + 590, 600, 604, 608, 616, 617, 625, 626, 632, 633, + 634, 641, 641, 649, 650, 651, 656, 659, 661, 663, + 665, 667, 669, 671, 673, 675, 680, 681, 690, 714, + 715, 716, 717, 729, 731, 758, 763, 764, 769, 778, + 779, 783, 784 }; #endif @@ -1113,7 +1110,7 @@ yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE `------------------------------------------------------------------*/ static void -yy_stack_print (yy_state_num *yybottom, yy_state_num *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -1136,7 +1133,7 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yy_state_num *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; @@ -1204,9 +1201,9 @@ yy_lac_stack_realloc (YYPTRDIFF_T *yycapacity, YYPTRDIFF_T yyadd, char const *yydebug_prefix, char const *yydebug_suffix, #endif - yy_state_num **yybottom, - yy_state_num *yybottom_no_free, - yy_state_num **yytop, yy_state_num *yytop_empty) + yy_state_t **yybottom, + yy_state_t *yybottom_no_free, + yy_state_t **yytop, yy_state_t *yytop_empty) { YYPTRDIFF_T yysize_old = *yytop == yytop_empty ? 0 : *yytop - *yybottom + 1; @@ -1214,7 +1211,7 @@ yy_lac_stack_realloc (YYPTRDIFF_T *yycapacity, YYPTRDIFF_T yyadd, if (*yycapacity < yysize_new) { YYPTRDIFF_T yyalloc = 2 * yysize_new; - yy_state_num *yybottom_new; + yy_state_t *yybottom_new; /* Use YYMAXDEPTH for maximum stack size given that the stack should never need to grow larger than the main state stack needs to grow without LAC. */ @@ -1227,7 +1224,7 @@ yy_lac_stack_realloc (YYPTRDIFF_T *yycapacity, YYPTRDIFF_T yyadd, if (YYMAXDEPTH < yyalloc) yyalloc = YYMAXDEPTH; yybottom_new = - (yy_state_num *) YYSTACK_ALLOC ((YYSIZE_T) + (yy_state_t *) YYSTACK_ALLOC ((YYSIZE_T) (yyalloc * YYSIZEOF (*yybottom_new))); if (!yybottom_new) { @@ -1328,11 +1325,11 @@ do { \ contents of either array, alter *YYES and *YYES_CAPACITY, and free any old *YYES other than YYESA. */ static int -yy_lac (yy_state_num *yyesa, yy_state_num **yyes, - YYPTRDIFF_T *yyes_capacity, yy_state_num *yyssp, int yytoken) +yy_lac (yy_state_t *yyesa, yy_state_t **yyes, + YYPTRDIFF_T *yyes_capacity, yy_state_t *yyssp, int yytoken) { - yy_state_num *yyes_prev = yyssp; - yy_state_num *yyesp = yyes_prev; + yy_state_t *yyes_prev = yyssp; + yy_state_t *yyesp = yyes_prev; YYDPRINTF ((stderr, "LAC: checking lookahead %s:", yytname[yytoken])); if (yytoken == YYUNDEFTOK) { @@ -1389,7 +1386,7 @@ yy_lac (yy_state_num *yyesa, yy_state_num **yyes, yyesp = yyes_prev -= yylen; } { - int yystate; + yy_state_fast_t yystate; { const int yylhs = yyr1[yyrule] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyesp; @@ -1400,7 +1397,7 @@ yy_lac (yy_state_num *yyesa, yy_state_num **yyes, if (yyesp == yyes_prev) { yyesp = *yyes; - *yyesp = (yy_state_num) yystate; + *yyesp = (yy_state_t) yystate; } else { @@ -1413,7 +1410,7 @@ yy_lac (yy_state_num *yyesa, yy_state_num **yyes, YYDPRINTF ((stderr, "\n")); return 2; } - *++yyesp = (yy_state_num) yystate; + *++yyesp = (yy_state_t) yystate; } YYDPRINTF ((stderr, " G%d", yystate)); } @@ -1522,8 +1519,8 @@ yytnamerr (char *yyres, const char *yystr) yy_lac returned 2. */ static int yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, - yy_state_num *yyesa, yy_state_num **yyes, - YYPTRDIFF_T *yyes_capacity, yy_state_num *yyssp, int yytoken) + yy_state_t *yyesa, yy_state_t **yyes, + YYPTRDIFF_T *yyes_capacity, yy_state_t *yyssp, int yytoken) { YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYPTRDIFF_T yysize = yysize0; @@ -1743,7 +1740,7 @@ YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ int yynerrs; - int yystate; + yy_state_fast_t yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; @@ -1756,9 +1753,9 @@ YYLTYPE yylloc = yyloc_default; to reallocate them elsewhere. */ /* The state stack. */ - yy_state_num yyssa[YYINITDEPTH]; - yy_state_num *yyss; - yy_state_num *yyssp; + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss; + yy_state_t *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; @@ -1775,8 +1772,8 @@ YYLTYPE yylloc = yyloc_default; YYPTRDIFF_T yystacksize; - yy_state_num yyesa[20]; - yy_state_num *yyes; + yy_state_t yyesa[20]; + yy_state_t *yyes; YYPTRDIFF_T yyes_capacity; int yy_lac_established = 0; @@ -1847,7 +1844,7 @@ yynewstate: yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - *yyssp = (yy_state_num) yystate; + *yyssp = (yy_state_t) yystate; if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1862,7 +1859,7 @@ yysetstate: /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ - yy_state_num *yyss1 = yyss; + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; YYLTYPE *yyls1 = yyls; @@ -1888,7 +1885,7 @@ yysetstate: yystacksize = YYMAXDEPTH; { - yy_state_num *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC ((YYSIZE_T) YYSTACK_BYTES (yystacksize)); @@ -1978,16 +1975,15 @@ yybackup: /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - YY_LAC_DISCARD ("shift"); - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; + + /* Discard the shifted token. */ + yychar = YYEMPTY; + YY_LAC_DISCARD ("shift"); goto yynewstate; @@ -2989,23 +2985,24 @@ handle_require (location const *loc, char const *version) /* Changes of behavior are only on minor version changes, so "3.0.5" is the same as "3.0". */ errno = 0; - char* cp = NULL; + char *cp = NULL, *cp1; long major = strtol (version, &cp, 10); - if (errno || *cp != '.') + if (errno || cp == version || *cp != '.' || major < 0) { complain (loc, complaint, _("invalid version requirement: %s"), version); return; } ++cp; - long minor = strtol (cp, NULL, 10); - if (errno) + long minor = strtol (cp, &cp1, 10); + if (errno || cp1 == cp || ! (0 <= minor && minor < 100) + || INT_MULTIPLY_WRAPV (major, 100, &required_version) + || INT_ADD_WRAPV (minor, required_version, &required_version)) { complain (loc, complaint, _("invalid version requirement: %s"), version); return; } - required_version = major * 100 + minor; /* Pretend to be at least 3.4, to check features published in 3.4 while developping it. */ const char* api_version = "3.4"; diff --git a/src/parse-gram.h b/src/parse-gram.h index 15bf4ebc..97b9d1a5 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.4.2.169-2644f. */ +/* A Bison parser, made by GNU Bison 3.4.2.189-f435. */ /* Bison interface for Yacc-like parsers in C -- 2.21.0