aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--symbol.c1
-rw-r--r--test/let1.awk14
-rw-r--r--test/let1.ok6
3 files changed, 21 insertions, 0 deletions
diff --git a/symbol.c b/symbol.c
index 69f0a664..afa38f1b 100644
--- a/symbol.c
+++ b/symbol.c
@@ -433,6 +433,7 @@ install(const char *name, NODE *parm, NODETYPE type)
}
if (type == Node_param_list || type == Node_alias) {
+ r->dup_ent = NULL;
prev = in_array(table, n_name);
if (prev == NULL)
goto simple;
diff --git a/test/let1.awk b/test/let1.awk
index a67e3639..413b6e1e 100644
--- a/test/let1.awk
+++ b/test/let1.awk
@@ -143,3 +143,17 @@ BEGIN {
exit 1
}
}
+
+function f5()
+{
+ @let (x = 1) { print "f5", x }
+ @let (x = 1, y = 2) { print "f5", x, y }
+ @let (x = 1, y = 2, z = 3) { print "f5", x, y, z }
+}
+
+BEGIN {
+ f5()
+ @let (x = 1) { print "b6", x }
+ @let (x = 1, y = 2) { print "b6", x, y }
+ @let (x = 1, y = 2, z = 3) { print "b6", x, y, z }
+}
diff --git a/test/let1.ok b/test/let1.ok
index 153d9d96..f3336775 100644
--- a/test/let1.ok
+++ b/test/let1.ok
@@ -3,3 +3,9 @@ gawk: let1.awk:9: warning: function `f0' called with more arguments than declare
f1 3
f2 3-8
b3 3-8
+f5 1
+f5 1 2
+f5 1 2 3
+b6 1
+b6 1 2
+b6 1 2 3