diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2022-05-24 16:55:55 -0400 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2022-05-24 16:55:55 -0400 |
commit | cb0ea690a0d82a06410da984c83a4881b8793e9d (patch) | |
tree | 445056d2bdbf95b0f9225386af2b0d84ba9825c7 | |
parent | 93d37eb5ceb619985258f61fc2f63640624b0a33 (diff) | |
parent | 09eaaaf6608e63813087fb746d2bf2b1701d9e81 (diff) | |
download | gawk-cb0ea690a0d82a06410da984c83a4881b8793e9d.tar.gz |
Merge branch 'gawk-5.1-stable'
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | awkgram.c | 5 | ||||
-rw-r--r-- | awkgram.y | 4 | ||||
-rw-r--r-- | pc/ChangeLog | 4 | ||||
-rw-r--r-- | pc/Makefile.tst | 7 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 4 | ||||
-rw-r--r-- | test/Makefile.in | 9 | ||||
-rw-r--r-- | test/Maketests | 5 | ||||
-rw-r--r-- | test/getlnfa.awk | 1 | ||||
-rw-r--r-- | test/getlnfa.ok | 3 |
11 files changed, 49 insertions, 4 deletions
@@ -1,3 +1,9 @@ +2022-05-24 Adam Van Scyoc <avanscy@g.clemson.edu> + + * awkgram.y (make_assignable): Handle Op_field_assign. + Avoids a core dump upon a certain kind of syntax error; + see test/getlnfa.awk. + 2022-05-11 Arnold D. Robbins <arnold@skeeve.com> * profile.c (pp_list): Typo fix in a comment. @@ -7907,6 +7907,10 @@ make_assignable(INSTRUCTION *ip) case Op_subscript: ip->opcode = Op_subscript_lhs; return ip; + case Op_field_assign: + // no need to change the opcode, but do need to return + // a non-NULL pointer. + return ip; default: break; /* keeps gcc -Wall happy */ } @@ -9184,7 +9188,6 @@ merge_comments(INSTRUCTION *c1, INSTRUCTION *c2) } if (c2 != NULL) { - // strcat(buffer, "\n"); strcat(buffer, c2->memory->stptr); if (c2->comment != NULL) { strcat(buffer, "\n"); @@ -5399,6 +5399,10 @@ make_assignable(INSTRUCTION *ip) case Op_subscript: ip->opcode = Op_subscript_lhs; return ip; + case Op_field_assign: + // no need to change the opcode, but do need to return + // a non-NULL pointer. + return ip; default: break; /* keeps gcc -Wall happy */ } diff --git a/pc/ChangeLog b/pc/ChangeLog index b1af1ca2..e012e4b3 100644 --- a/pc/ChangeLog +++ b/pc/ChangeLog @@ -1,3 +1,7 @@ +2022-05-24 Adam Van Scyoc <avanscy@g.clemson.edu> + + * Makefile.tst: Regenerated. + 2022-05-03 Arnold D. Robbins <arnold@skeeve.com> * Makefile.tst.prologue: Add GAWK_NO_MPFR_WARN=1. diff --git a/pc/Makefile.tst b/pc/Makefile.tst index e5ca6d9a..f15edec4 100644 --- a/pc/Makefile.tst +++ b/pc/Makefile.tst @@ -155,7 +155,7 @@ BASIC_TESTS = \ fldchgnf fldterm fnamedat fnarray fnarray2 fnaryscl fnasgnm \ fnmisc fordel forref forsimp fsbs fscaret fsnul1 fsrs fsspcoln \ fstabplus funsemnl funsmnam funstack getline getline2 getline3 \ - getline4 getline5 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ + getline4 getline5 getlnbuf getlnfa getnr2tb getnr2tm gsubasgn gsubtest \ gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 gsubtst8 \ hex hex2 hsprint inpref inputred intest intprec iobug1 leaddig \ leadnl litoct longsub longwrds manglprm math membug1 memleak \ @@ -2550,6 +2550,11 @@ getlnhd: @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +getlnfa: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + localenl: @echo $@ @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/$@.sh > _$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/ChangeLog b/test/ChangeLog index 6a5fa600..3f263224 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2022-05-24 Adam Van Scyoc <avanscy@g.clemson.edu> + + * Makefile.am (EXTRA_DIST): getlnfa, new test. + * getlnfa.awk, getlnfa.ok: New files. + 2022-05-03 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (AWK): Add GAWK_NO_MPFR_WARN=1 to the list. diff --git a/test/Makefile.am b/test/Makefile.am index af7f289f..fd73e646 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -488,6 +488,8 @@ EXTRA_DIST = \ getlnbuf.ok \ getlndir.awk \ getlndir.ok \ + getlnfa.awk \ + getlnfa.ok \ getlnhd.awk \ getlnhd.ok \ getnr2tb.awk \ @@ -1427,7 +1429,7 @@ BASIC_TESTS = \ fldchgnf fldterm fnamedat fnarray fnarray2 fnaryscl fnasgnm \ fnmisc fordel forref forsimp fsbs fscaret fsnul1 fsrs fsspcoln \ fstabplus funsemnl funsmnam funstack getline getline2 getline3 \ - getline4 getline5 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ + getline4 getline5 getlnbuf getlnfa getnr2tb getnr2tm gsubasgn gsubtest \ gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 gsubtst8 \ hex hex2 hsprint inpref inputred intest intprec iobug1 leaddig \ leadnl litoct longsub longwrds manglprm math membug1 memleak \ diff --git a/test/Makefile.in b/test/Makefile.in index 3f10d09d..7d0a7009 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -754,6 +754,8 @@ EXTRA_DIST = \ getlnbuf.ok \ getlndir.awk \ getlndir.ok \ + getlnfa.awk \ + getlnfa.ok \ getlnhd.awk \ getlnhd.ok \ getnr2tb.awk \ @@ -1693,7 +1695,7 @@ BASIC_TESTS = \ fldchgnf fldterm fnamedat fnarray fnarray2 fnaryscl fnasgnm \ fnmisc fordel forref forsimp fsbs fscaret fsnul1 fsrs fsspcoln \ fstabplus funsemnl funsmnam funstack getline getline2 getline3 \ - getline4 getline5 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ + getline4 getline5 getlnbuf getlnfa getnr2tb getnr2tm gsubasgn gsubtest \ gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 gsubtst8 \ hex hex2 hsprint inpref inputred intest intprec iobug1 leaddig \ leadnl litoct longsub longwrds manglprm math membug1 memleak \ @@ -4263,6 +4265,11 @@ getlnhd: @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +getlnfa: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + localenl: @echo $@ @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/$@.sh > _$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index 7bf4f61a..aa54e782 100644 --- a/test/Maketests +++ b/test/Maketests @@ -1283,6 +1283,11 @@ getlnhd: @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +getlnfa: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + localenl: @echo $@ @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/$@.sh > _$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/getlnfa.awk b/test/getlnfa.awk new file mode 100644 index 00000000..1e82d546 --- /dev/null +++ b/test/getlnfa.awk @@ -0,0 +1 @@ +getline $1+++++++ diff --git a/test/getlnfa.ok b/test/getlnfa.ok new file mode 100644 index 00000000..416704e0 --- /dev/null +++ b/test/getlnfa.ok @@ -0,0 +1,3 @@ +gawk: getlnfa.awk:1: getline $1+++++++ +gawk: getlnfa.awk:1: ^ syntax error +EXIT CODE: 1 |