From: Paul Eggert Date: Mon, 14 Oct 2002 06:54:41 +0000 (+0000) Subject: (yyparse): Rewrite to avoid "comparison is always true due to limited X-Git-Tag: BISON-1_75~13 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/e5cfd9d8affb6d56c631fbb10d8dc8bbca1520ad?ds=inline (yyparse): Rewrite to avoid "comparison is always true due to limited range of data type" warning from GCC in synclines.at test. --- diff --git a/data/yacc.c b/data/yacc.c index f3dcfab4..cb690bb7 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -918,27 +918,19 @@ yybackup: YYDPRINTF ((stderr, "\n")); } - /* Set YYN to the action to take in STATE on seeing token YYCHAR1. - Result YYN means - - YYN < 0: Reduce on rule -YYN. - - YYN = 0: Error. - - YYN > 0: Shift to state YYN. */ + /* If the proper action on seeing token YYCHAR1 is to reduce or to + detect an error, take that action. */ yyn += yychar1; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1) - /* Defaulted action (reduction). */ - yyn = -yydefact[yystate]; - else if (yytable[yyn] != YYTABLE_NINF) - yyn = yytable[yyn]; - else - yyn = 0; - - if (yyn < 0) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT;