diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2012-12-23 14:16:02 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2012-12-23 14:16:02 +0200 |
commit | cfa30992be7c98184d68c3afbb489d47dddcf0fa (patch) | |
tree | dd68f30402ec509fb290a32a18996923407e4179 /eval.c | |
parent | 15e58aea1441250cb85f760e644f97cd6efed35f (diff) | |
download | egawk-cfa30992be7c98184d68c3afbb489d47dddcf0fa.tar.gz egawk-cfa30992be7c98184d68c3afbb489d47dddcf0fa.tar.bz2 egawk-cfa30992be7c98184d68c3afbb489d47dddcf0fa.zip |
Bug fixes from John Haque.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -1778,8 +1778,13 @@ top: m->vname); isparam = TRUE; save_symbol = m = GET_PARAM(m->param_cnt); - if (m->type == Node_array_ref) + if (m->type == Node_array_ref) { + if (m->orig_array->type == Node_var) { + /* gawk 'func f(x) { a = 10; print x; } BEGIN{ f(a) }' */ + goto uninitialized_scalar; + } m = m->orig_array; + } } switch (m->type) { @@ -1795,6 +1800,7 @@ top: break; case Node_var_new: +uninitialized_scalar: m->type = Node_var; m->var_value = Nnull_string; if (do_lint) |