Blob Blame History Raw
diff -urp byacc-20070509/skeleton.c byacc-20070509-pm/skeleton.c
--- byacc-20070509/skeleton.c	2005-05-05 01:39:36.000000000 +0200
+++ byacc-20070509-pm/skeleton.c	2008-07-14 13:03:36.000000000 +0200
@@ -21,6 +21,7 @@ char *banner[] =
     "#endif",
     "",
     "#include <stdlib.h>",
+    "#include <string.h>",
     "",
     "#define YYBYACC 1",
     CONCAT1("#define YYMAJOR ", YYMAJOR),
@@ -275,7 +276,10 @@ char *body[] =
     "                YYPREFIX, yystate, yyn, yyrule[yyn]);",
     "#endif",
     "    yym = yylen[yyn];",
-    "    yyval = yyvsp[1-yym];",
+    "    if (yym)",
+    "        yyval = yyvsp[1-yym];",
+    "    else",
+    "        memset(&yyval, 0, sizeof yyval);",
     "    switch (yyn)",
     "    {",
     0
Only in byacc-20070509-pm/: skeleton.c~