diff --git a/compiler/aliencomp.lisp b/compiler/aliencomp.lisp index dd9d804854954b41ee0162477c6ecbb4ec954771..f50f341d30459184e97fbc44af54b00ca72be064 100644 --- a/compiler/aliencomp.lisp +++ b/compiler/aliencomp.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/aliencomp.lisp,v 1.12 1991/04/09 17:21:23 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/aliencomp.lisp,v 1.13 1991/04/22 18:24:30 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -477,6 +477,11 @@ (specifier-type type)) (port (specifier-type '(unsigned-byte 32))) + (values + (values-specifier-type + `(values ,@(mapcar #'type-specifier + (mapcar #'alien-type-type + (cdr type)))))) (t (error "Alien type ~S has no corresponding Lisp type." type))))) @@ -534,11 +539,11 @@ temp-tn nsp tn))) (assert (null args))) - (let ((results (when return-type - (list (make-call-out-result-tn return-type))))) + (let ((results (and return-type (make-call-out-result-tn return-type)))) (vop* call-out call block ((reference-tn-list arg-tns nil)) - ((reference-tn-list results t)) + ((reference-tn-list (if (listp results) results (list results)) + t)) name) (vop dealloc-number-stack-space call block stack-frame-size) (move-continuation-result call block results cont)))))