mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
(YYERROR): Move code from yyerrlab1 to here, so that
we don't need to worry about yyerrlab1 being reported as an "unused label" by non-GCC C compilers. The downside is that if locations are used then a couple of statements are duplicated each time YYERROR is invoked, but the upside is that the warnings should vanish. (yyerrlab1): Move code to YERROR. (yyerrlab2): Remove. Change uses back to yyerrlab1. This reverts some of the 2002-12-27 change.
This commit is contained in:
32
data/yacc.c
32
data/yacc.c
@@ -465,7 +465,15 @@ static const ]b4_int_type_for([b4_stos])[ yystos[] =
|
|||||||
|
|
||||||
#define YYACCEPT goto yyacceptlab
|
#define YYACCEPT goto yyacceptlab
|
||||||
#define YYABORT goto yyabortlab
|
#define YYABORT goto yyabortlab
|
||||||
#define YYERROR goto yyerrlab1
|
#define YYERROR ]b4_location_if([do \
|
||||||
|
{ \
|
||||||
|
yylerrsp = yylsp; \
|
||||||
|
*++yylerrsp = yyloc; \
|
||||||
|
goto yyerrlab1; \
|
||||||
|
} \
|
||||||
|
while (0)],
|
||||||
|
[goto yyerrlab1])[
|
||||||
|
|
||||||
|
|
||||||
/* Like YYERROR except do call yyerror. This remains here temporarily
|
/* Like YYERROR except do call yyerror. This remains here temporarily
|
||||||
to ease the transition to the new meaning of YYERROR, for GCC.
|
to ease the transition to the new meaning of YYERROR, for GCC.
|
||||||
@@ -1103,33 +1111,13 @@ yyerrlab:
|
|||||||
|
|
||||||
/* Else will try to reuse lookahead token after shifting the error
|
/* Else will try to reuse lookahead token after shifting the error
|
||||||
token. */
|
token. */
|
||||||
goto yyerrlab2;
|
goto yyerrlab1;
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------.
|
/*----------------------------------------------------.
|
||||||
| yyerrlab1 -- error raised explicitly by an action. |
|
| yyerrlab1 -- error raised explicitly by an action. |
|
||||||
`----------------------------------------------------*/
|
`----------------------------------------------------*/
|
||||||
yyerrlab1:
|
yyerrlab1:
|
||||||
|
|
||||||
/* Suppress GCC warning that yyerrlab1 is unused when no action
|
|
||||||
invokes YYERROR. MacOS 10.2.3's buggy "smart preprocessor"
|
|
||||||
insists on the trailing semicolon. */
|
|
||||||
#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
|
|
||||||
/* GNU C++ (as of version 3.2.1) does not allow attributes on labels. */
|
|
||||||
# ifndef __cplusplus
|
|
||||||
__attribute__ ((__unused__));
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
]b4_location_if([ yylerrsp = yylsp;
|
|
||||||
*++yylerrsp = yyloc;])[
|
|
||||||
goto yyerrlab2;
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------.
|
|
||||||
| yyerrlab2 -- pop states until the error token can be shifted. |
|
|
||||||
`---------------------------------------------------------------*/
|
|
||||||
yyerrlab2:
|
|
||||||
yyerrstatus = 3; /* Each real token shifted decrements this. */
|
yyerrstatus = 3; /* Each real token shifted decrements this. */
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
|
|||||||
Reference in New Issue
Block a user