Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Sep 1996 17:19:02 -0500
From:      Steve Price <sprice@hiwaay.net>
To:        hackers@freebsd.org
Subject:   patch to cleanup code generated by yacc(1)
Message-ID:  <323C80D6.1CFBAE39@hiwaay.net>

next in thread | raw e-mail | index | archive | help
Hi all,

Attached is a patch that -Wall'izes the code generated by yacc(1).
Compiling yacc with -Wall still produces scads 'o warnings, but
at least the code that it generates is nearly -Wall proof. :)

Steve

Index: skeleton.c
===================================================================
RCS file: /u/FreeBSD/cvs/src/usr.bin/yacc/skeleton.c,v
retrieving revision 1.4
diff -u -r1.4 skeleton.c
--- skeleton.c	1996/09/03 10:56:32	1.4
+++ skeleton.c	1996/09/14 02:18:32
@@ -55,7 +55,7 @@
 char *banner[] =
 {
     "#ifndef lint",
-    "static char yysccsid[] = \"@(#)yaccpar	1.9 (Berkeley) 02/21/93\";",
+    "static char const yysccsid[] = \"@(#)yaccpar	1.9 (Berkeley)
02/21/93\";",
     "#endif",
     "#define YYBYACC 1",
     "#define YYMAJOR 1",
@@ -63,6 +63,23 @@
     "#define yyclearin (yychar=(-1))",
     "#define yyerrok (yyerrflag=0)",
     "#define YYRECOVERING (yyerrflag!=0)",
+    "/* cfront 1.2 defines \"c_plusplus\" instead of \"__cplusplus\" */",
+    "#ifdef c_plusplus",
+    "#ifndef __cplusplus",
+    "#define __cplusplus",
+    "#endif",
+    "#endif",
+    "#ifdef __cplusplus",
+    "extern \"C\" {",
+    "    char *getenv(const char *);",
+    "    int yyparse();",
+    "    int yylex();",
+    "}",
+    "#else",
+    "extern char *getenv();",
+    "extern int yylex();",
+    "extern int yyparse();",
+    "#endif",
     0
 };
 
@@ -120,17 +137,6 @@
     "#define YYREJECT goto yyabort",
     "#define YYACCEPT goto yyaccept",
     "#define YYERROR goto yyerrlab",
-    "/* cfront 1.2 defines \"c_plusplus\" instead of \"__cplusplus\" */",
-    "#ifdef c_plusplus",
-    "#ifndef __cplusplus",
-    "#define __cplusplus",
-    "#endif",
-    "#endif",
-    "#ifdef __cplusplus",
-    "extern \"C\" { char *getenv(const char *); }",
-    "#else",
-    "extern char *getenv();",
-    "#endif",
     "",
     "int",
     "yyparse()",
@@ -196,12 +202,12 @@
     "        goto yyreduce;",
     "    }",
     "    if (yyerrflag) goto yyinrecovery;",
-    "#ifdef lint",
+    "#if defined(lint) || defined(__GNUC__)",
     "    goto yynewerror;",
     "#endif",
     "yynewerror:",
     "    yyerror(\"syntax error\");",
-    "#ifdef lint",
+    "#if defined(lint) || defined(__GNUC__)",
     "    goto yyerrlab;",
     "#endif",
     "yyerrlab:",



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?323C80D6.1CFBAE39>