summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.bin/yacc/skeleton.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.bin/yacc/skeleton.c b/usr.bin/yacc/skeleton.c
index f765c91..c1263d9 100644
--- a/usr.bin/yacc/skeleton.c
+++ b/usr.bin/yacc/skeleton.c
@@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$");
const char *banner[] =
{
"#include <stdlib.h>",
+ "#include <string.h>",
"#ifndef lint",
"#ifdef __unused",
"__unused",
@@ -331,7 +332,10 @@ const 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
OpenPOWER on IntegriCloud