diff --git a/cgen.scm b/cgen.scm index 0ea35bf1..a3846ef8 100644 --- a/cgen.scm +++ b/cgen.scm @@ -913,7 +913,9 @@ (lambda->formals exp) (lambda-formals-type exp))) (tmp-ident (if (> (length (lambda-formals->list exp)) 0) - (mangle (car (lambda->formals exp))) + (mangle (if (pair? (lambda->formals exp)) + (car (lambda->formals exp)) + (lambda->formals exp))) "")) (has-closure? (and diff --git a/transforms.scm b/transforms.scm index f3ef815a..8f874670 100644 --- a/transforms.scm +++ b/transforms.scm @@ -387,7 +387,7 @@ (define (lambda-varargs-var exp) (if (lambda-varargs? exp) (if (equal? (lambda-formals-type exp) 'args:varargs) - (lambda-formals exp) ; take symbol directly + (lambda->formals exp) ; take symbol directly (car (reverse (lambda-formals->list exp)))) ; Last arg is varargs #f))