diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2020-06-14 11:18:15 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2020-06-14 11:18:15 +0300 |
commit | 8b1a5b7dbf993908f24c1a0a1ddebbf2b96c70dd (patch) | |
tree | 11e82319a978fb134df2c42d48ae36927cfba98c /field.c | |
parent | 2911138b7d7901a2f6dcd2d99879f055dec5e3f7 (diff) | |
download | egawk-8b1a5b7dbf993908f24c1a0a1ddebbf2b96c70dd.tar.gz egawk-8b1a5b7dbf993908f24c1a0a1ddebbf2b96c70dd.tar.bz2 egawk-8b1a5b7dbf993908f24c1a0a1ddebbf2b96c70dd.zip |
Check for FUNCTAB and SYMTAB as destination in builtin functions.
Diffstat (limited to 'field.c')
-rw-r--r-- | field.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -980,6 +980,8 @@ do_split(int nargs) sep_arr = POP_PARAM(); if (sep_arr->type != Node_var_array) fatal(_("split: fourth argument is not an array")); + check_symtab_functab(sep_arr, "split", + _("%s: cannot use %s as fourth argument")); if ((do_lint_extensions || do_lint_old) && ! warned) { warned = true; lintwarn(_("split: fourth argument is a gawk extension")); @@ -990,6 +992,8 @@ do_split(int nargs) arr = POP_PARAM(); if (arr->type != Node_var_array) fatal(_("split: second argument is not an array")); + check_symtab_functab(arr, "split", + _("%s: cannot use %s as second argument")); if (sep_arr != NULL) { if (sep_arr == arr) @@ -1073,11 +1077,15 @@ do_patsplit(int nargs) sep_arr = POP_PARAM(); if (sep_arr->type != Node_var_array) fatal(_("patsplit: fourth argument is not an array")); + check_symtab_functab(sep_arr, "patsplit", + _("%s: cannot use %s as fourth argument")); } sep = POP(); arr = POP_PARAM(); if (arr->type != Node_var_array) fatal(_("patsplit: second argument is not an array")); + check_symtab_functab(arr, "patsplit", + _("%s: cannot use %s as second argument")); src = TOP_STRING(); |