brant@manta.pha.pa.us (Brant Cheikes) (10/21/88)
There is a discrepancy between the cexp.c supplied in gcc.tar-1.30
(FTP'd from prep.ai.mit.edu) and the one produced by applying the
latest bison to cexp.y. On both a Vax under Ultrix 2.2 and a UNIXpc
(3b1) under UNIX SYSV, the latest bison produces identical output in
cexp.tab.c, but that output differs from the cexp.c in the gcc-1.30
distribution. So either the latest bison has a bug or the supplied
cexp.c was produced by a different bison. The diffs between the two
files follow:
*** /tmp/gcc-1.30/cexp.c Mon Jun 13 00:17:25 1988
--- cexp.tab.c Thu Oct 20 19:13:11 1988
***************
*** 56,62
#define YYACCEPT return(0)
#define YYABORT return(1)
! #define YYERROR return(1)
#include <stdio.h>
#ifndef __STDC__
--- 56,62 -----
#define YYACCEPT return(0)
#define YYABORT return(1)
! #define YYERROR goto yyerrlab
#include <stdio.h>
#ifndef __STDC__
***************
*** 366,372
#endif
! #line 165 "bison.simple"
int
yyparse()
{
--- 366,372 -----
#endif
! #line 167 "bison.simple"
int
yyparse()
{
***************
*** 480,486
#endif
if (yyssp >= yyss + yymaxdepth - 1)
! YYERROR;
}
#ifdef YYDEBUG
--- 480,486 -----
#endif
if (yyssp >= yyss + yymaxdepth - 1)
! YYABORT;
}
#ifdef YYDEBUG
***************
*** 723,729
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 303 "bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
--- 723,729 -----
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 408 "bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
***************
*** 735,741
if (yydebug)
{
short *ssp1 = yyss - 1;
! fprintf (stderr, "state stack now", yyssp-yyss);
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
--- 735,741 -----
if (yydebug)
{
short *ssp1 = yyss - 1;
! fprintf (stderr, "state stack now");
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
***************
*** 791,797
/* return failure if at end of input */
if (yychar == YYEOF)
! YYERROR;
#ifdef YYDEBUG
if (yydebug)
--- 791,797 -----
/* return failure if at end of input */
if (yychar == YYEOF)
! YYABORT;
#ifdef YYDEBUG
if (yydebug)
***************
*** 819,825
yyerrpop: /* pop the current state because it cannot handle the error token */
! if (yyssp == yyss) YYERROR;
yyvsp--;
yystate = *--yyssp;
#ifdef YYLSP_NEEDED
--- 819,825 -----
yyerrpop: /* pop the current state because it cannot handle the error token */
! if (yyssp == yyss) YYABORT;
yyvsp--;
yystate = *--yyssp;
#ifdef YYLSP_NEEDED
***************
*** 830,836
if (yydebug)
{
short *ssp1 = yyss - 1;
! fprintf (stderr, "Error: state stack now", yyssp-yyss);
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
--- 830,836 -----
if (yydebug)
{
short *ssp1 = yyss - 1;
! fprintf (stderr, "Error: state stack now");
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
--
Brant Cheikes
University of Pennsylvania
Department of Computer and Information Science
Internet: brant@manta.pha.pa.us, UUCP: bpa!manta!brant