diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | builtin.c | 1 | ||||
-rw-r--r-- | test/ChangeLog | 3 | ||||
-rw-r--r-- | test/Makefile.am | 6 | ||||
-rw-r--r-- | test/Makefile.in | 16 | ||||
-rw-r--r-- | test/Maketests | 10 | ||||
-rw-r--r-- | test/stupid3.awk | 16 | ||||
-rw-r--r-- | test/stupid3.ok | 2 | ||||
-rw-r--r-- | test/stupid4.awk | 11 | ||||
-rw-r--r-- | test/stupid4.ok | 2 |
10 files changed, 70 insertions, 2 deletions
@@ -20,6 +20,11 @@ for Node_var_new; variables can exist but have not been assigned a value. + Unrelated: + + * builtin.c (do_typeof): Handle Node_array_ref also. Thanks to + Denis Shirokov <cosmogen@gmail.com> for the report. + 2019-12-22 Arnold D. Robbins <arnold@skeeve.com> * config.guess: Updated from GNULIB. @@ -4159,6 +4159,7 @@ do_typeof(int nargs) } break; case Node_var_new: + case Node_array_ref: res = "untyped"; deref = false; break; diff --git a/test/ChangeLog b/test/ChangeLog index 05e60edc..30470034 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -5,6 +5,9 @@ * Makefile.am (EXTRA_DIST): New tests, stupid1 and stupid2. * stupid1.awk, stupid1.ok: New files. * stupid2.awk, stupid2.ok: New files. + * Makefile.am (EXTRA_DIST): New tests, stupid3 and stupid4. + * stupid3.awk, stupid3.ok: New files. + * stupid4.awk, stupid4.ok: New files. 2019-11-09 Alexey Pawlow <alexey.pawlow@gmail.com> diff --git a/test/Makefile.am b/test/Makefile.am index 14e5b0a5..aa64110c 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1176,6 +1176,10 @@ EXTRA_DIST = \ stupid1.ok \ stupid2.awk \ stupid2.ok \ + stupid3.awk \ + stupid3.ok \ + stupid4.awk \ + stupid4.ok \ subamp.awk \ subamp.in \ subamp.ok \ @@ -1395,7 +1399,7 @@ GAWK_EXT_TESTS = \ sandbox1 shadow shadowbuiltin sortfor sortfor2 sortu \ sourcesplit split_after_fpat \ splitarg4 strftfld strftime strtonum strtonum1 \ - stupid1 stupid2 \ + stupid1 stupid2 stupid3 stupid4 \ switch2 symtab1 symtab2 \ symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ timeout typedregex1 typedregex2 typedregex3 typedregex4 \ diff --git a/test/Makefile.in b/test/Makefile.in index 0fae9058..9557b1e4 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1435,6 +1435,10 @@ EXTRA_DIST = \ stupid1.ok \ stupid2.awk \ stupid2.ok \ + stupid3.awk \ + stupid3.ok \ + stupid4.awk \ + stupid4.ok \ subamp.awk \ subamp.in \ subamp.ok \ @@ -1654,7 +1658,7 @@ GAWK_EXT_TESTS = \ sandbox1 shadow shadowbuiltin sortfor sortfor2 sortu \ sourcesplit split_after_fpat \ splitarg4 strftfld strftime strtonum strtonum1 \ - stupid1 stupid2 \ + stupid1 stupid2 stupid3 stupid4 \ switch2 symtab1 symtab2 \ symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ timeout typedregex1 typedregex2 typedregex3 typedregex4 \ @@ -4764,6 +4768,16 @@ stupid2: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +stupid3: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +stupid4: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + switch2: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index 6c8ebf08..e339b2b9 100644 --- a/test/Maketests +++ b/test/Maketests @@ -1921,6 +1921,16 @@ stupid2: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +stupid3: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +stupid4: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + switch2: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/stupid3.awk b/test/stupid3.awk new file mode 100644 index 00000000..fa57e65d --- /dev/null +++ b/test/stupid3.awk @@ -0,0 +1,16 @@ +BEGIN { + test(someidentifier) +} + + +function test(p) +{ + test0(p) + p + test0(p) +} + +function test0(p) +{ + print "TYPEOF: " typeof(p) +} diff --git a/test/stupid3.ok b/test/stupid3.ok new file mode 100644 index 00000000..11beb6c9 --- /dev/null +++ b/test/stupid3.ok @@ -0,0 +1,2 @@ +TYPEOF: untyped +TYPEOF: untyped diff --git a/test/stupid4.awk b/test/stupid4.awk new file mode 100644 index 00000000..8b36d0c2 --- /dev/null +++ b/test/stupid4.awk @@ -0,0 +1,11 @@ +BEGIN { + test(someidentifier) +} + + +function test(a) +{ + print typeof(a) + a + print typeof(a) +} diff --git a/test/stupid4.ok b/test/stupid4.ok new file mode 100644 index 00000000..1271dad1 --- /dev/null +++ b/test/stupid4.ok @@ -0,0 +1,2 @@ +untyped +untyped |