diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2015-09-26 23:20:53 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2015-09-26 23:20:53 +0300 |
commit | 0e54ab845160a222556047482ea02f7221f34e59 (patch) | |
tree | d041082ace3117cf144fdf6f46ada30ba2610e8b | |
parent | 3e762b6f62061974d152dd251f3e83cacca073e3 (diff) | |
download | egawk-0e54ab845160a222556047482ea02f7221f34e59.tar.gz egawk-0e54ab845160a222556047482ea02f7221f34e59.tar.bz2 egawk-0e54ab845160a222556047482ea02f7221f34e59.zip |
Fatal with --posix on multidimensional arrays.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | awkgram.c | 4 | ||||
-rw-r--r-- | awkgram.y | 4 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 8 | ||||
-rw-r--r-- | test/Makefile.in | 8 | ||||
-rw-r--r-- | test/muldimposix.awk | 1 | ||||
-rw-r--r-- | test/muldimposix.ok | 2 |
8 files changed, 38 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2015-09-26 Arnold D. Robbins <arnold@skeeve.com> + + * awkgram.y (yylex): Diagnose multidimensional arrays for + traditional/posix (fatal) or lint. Thanks to Ed Morton + for the bug report. + 2015-09-25 Arnold D. Robbins <arnold@skeeve.com> * config.guess, config.sub, config.rpath: Updated. @@ -5563,6 +5563,10 @@ retry: c = nextc(true); pushback(); if (c == '[') { + if (do_traditional) + fatal(_("multidimensional arrays are a gawk extension")); + if (do_lint) + lintwarn(_("multidimensional arrays are a gawk extension")); yylval = GET_INSTRUCTION(Op_sub_array); lasttok = ']'; } else { @@ -3224,6 +3224,10 @@ retry: c = nextc(true); pushback(); if (c == '[') { + if (do_traditional) + fatal(_("multidimensional arrays are a gawk extension")); + if (do_lint) + lintwarn(_("multidimensional arrays are a gawk extension")); yylval = GET_INSTRUCTION(Op_sub_array); lasttok = ']'; } else { diff --git a/test/ChangeLog b/test/ChangeLog index 10bccd5a..8a227232 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2015-09-26 Arnold D. Robbins <arnold@skeeve.com> + + * Makefile.am (muldimposix): New test. + * muldimposix.awk, muldimposix.ok: New files. + 2015-09-18 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (fpat5): New test. diff --git a/test/Makefile.am b/test/Makefile.am index 6996b1c7..27ccb76a 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -509,6 +509,8 @@ EXTRA_DIST = \ manglprm.ok \ manyfiles.awk \ manyfiles.ok \ + muldimposix.awk \ + muldimposix.ok \ match1.awk \ match1.ok \ match2.awk \ @@ -1069,6 +1071,7 @@ GAWK_EXT_TESTS = \ include include2 indirectbuiltin indirectcall indirectcall2 \ lint lintold lintwarn \ manyfiles match1 match2 match3 mbstr1 mbstr2 \ + muldimposix \ nastyparm negtime next nondec nondec2 \ patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 printhuge procinfs \ profile0 profile1 profile2 profile3 profile4 profile5 profile6 profile7 pty1 \ @@ -2088,6 +2091,11 @@ negtime:: @TZ=GMT AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @AWKPATH="$(srcdir)" $(AWK) -f checknegtime.awk "$(srcdir)"/$@.ok _$@ && rm -f _$@ +muldimposix:: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --posix >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + # Targets generated for other tests: include Maketests diff --git a/test/Makefile.in b/test/Makefile.in index ba5da05f..787fba15 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -766,6 +766,8 @@ EXTRA_DIST = \ manglprm.ok \ manyfiles.awk \ manyfiles.ok \ + muldimposix.awk \ + muldimposix.ok \ match1.awk \ match1.ok \ match2.awk \ @@ -1325,6 +1327,7 @@ GAWK_EXT_TESTS = \ include include2 indirectbuiltin indirectcall indirectcall2 \ lint lintold lintwarn \ manyfiles match1 match2 match3 mbstr1 mbstr2 \ + muldimposix \ nastyparm negtime next nondec nondec2 \ patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 printhuge procinfs \ profile0 profile1 profile2 profile3 profile4 profile5 profile6 profile7 pty1 \ @@ -2524,6 +2527,11 @@ negtime:: @echo $@ @TZ=GMT AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @AWKPATH="$(srcdir)" $(AWK) -f checknegtime.awk "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +muldimposix:: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --posix >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ Gt-dummy: # file Maketests, generated from Makefile.am by the Gentests program addcomma: diff --git a/test/muldimposix.awk b/test/muldimposix.awk new file mode 100644 index 00000000..135b3246 --- /dev/null +++ b/test/muldimposix.awk @@ -0,0 +1 @@ +BEGIN { a[1][2] = 3 } diff --git a/test/muldimposix.ok b/test/muldimposix.ok new file mode 100644 index 00000000..3594fab0 --- /dev/null +++ b/test/muldimposix.ok @@ -0,0 +1,2 @@ +gawk: muldimposix.awk:1: fatal: multidimensional arrays are a gawk extension +EXIT CODE: 2 |