diff options
-rw-r--r-- | usr.bin/yacc/skeleton.c | 6 |
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 |