mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-16 14:21:48 -08:00
Fix MULTIPLE-VALUE-BIND not evaluating values-form.
(let (x) (multiple-value-bind () (setf x t)) x) returned NIL because the values-form was discarded.
This commit is contained in:
parent
4c91aa1f1b
commit
d4f3997bda
1 changed files with 2 additions and 2 deletions
|
|
@ -1672,16 +1672,16 @@ static int
|
|||
c_multiple_value_bind(cl_env_ptr env, cl_object args, int flags)
|
||||
{
|
||||
cl_object vars = pop(&args);
|
||||
cl_object value = pop(&args);
|
||||
int n = ecl_length(vars);
|
||||
switch (n) {
|
||||
case 0:
|
||||
return c_locally(env, args, flags);
|
||||
case 1:
|
||||
vars = ECL_CONS_CAR(vars);
|
||||
vars = ecl_list1(cl_list(2, vars, value));
|
||||
vars = ecl_list1(cl_list(2, vars, pop(&args)));
|
||||
return c_leta(env, cl_listX(2, vars, args), flags);
|
||||
default: {
|
||||
cl_object value = pop(&args);
|
||||
cl_object old_variables = env->c_env->variables;
|
||||
cl_object body = c_process_declarations(args);
|
||||
cl_object specials = env->values[3];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue