summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2012-12-25 22:40:49 +0200
committerArnold D. Robbins <arnold@skeeve.com>2012-12-25 22:40:49 +0200
commit566df675d8a6bb0c632231abe2e7573ce9f9541d (patch)
tree8098666e8721daf4c7c3620f6046b94208b94f8a /eval.c
parent11d4249864512d100a938559e044876f2fd3171f (diff)
parente427f97daa5f252709f5380701f306e031585dde (diff)
downloadgawk-566df675d8a6bb0c632231abe2e7573ce9f9541d.tar.gz
Merge branch 'gawk-4.0-stable'.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index 1908c472..afb6a457 100644
--- a/eval.c
+++ b/eval.c
@@ -1124,8 +1124,10 @@ r_get_lhs(NODE *n, bool reference)
if (n->orig_array->type == Node_var_array)
fatal(_("attempt to use array `%s' in a scalar context"),
array_vname(n));
- n->orig_array->type = Node_var;
- n->orig_array->var_value = dupnode(Nnull_string);
+ if (n->orig_array->type != Node_var) {
+ n->orig_array->type = Node_var;
+ n->orig_array->var_value = Nnull_string;
+ }
/* fall through */
case Node_var_new:
n->type = Node_var;