diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2018-03-13 19:19:02 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2018-03-13 19:19:02 -0700 |
commit | 62e9ae484fd396a882db42e9c0c861ae666450d9 (patch) | |
tree | bafb57ceeccec248aab3e9d616b61afe678bb5d2 /lib.c | |
parent | 909e7bfb11a99eee70f69a9c244cb1aeee279c1f (diff) | |
download | txr-62e9ae484fd396a882db42e9c0c861ae666450d9.tar.gz txr-62e9ae484fd396a882db42e9c0c861ae666450d9.tar.bz2 txr-62e9ae484fd396a882db42e9c0c861ae666450d9.zip |
regression: excess args not diagnosed.
This was caused by the recent work to reduce consing in
generic_funcall.
* lib.c (generic_funcall): Correct test for too many
arguments. Because we don't normalize the argument list to the
exact number of fixed args, but to at least the fixed args,
the excess args can possibly be part of the fill rather than
part of the list.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -6170,7 +6170,7 @@ val generic_funcall(val fun, struct args *args_in) if (args->fill < reqargs) callerror(fun, lit("missing required arguments")); - if (args->list) + if (args->fill > fixparam || args->list) callerror(fun, lit("too many arguments")); switch (fun->f.functype) { |