src/method-impl.lisp (compute-method-entry-functions): Fix varargs handling.
[sod] / src / method-impl.lisp
index 4c694e1..6f22a14 100644 (file)
                                               . raw-entry-args))))
                   (codegen-push codegen)
                   (ensure-var codegen *sod-ap* (c-type va-list))
-                  (emit-inst codegen
-                             (make-va-start-inst *sod-ap*
-                                                 (argument-name parm-n)))
                   (convert-stmts codegen entry-target return-type
                                  (lambda (target)
-                                   (deliver-expr codegen target call)))
-                  (emit-inst codegen (make-va-end-inst *sod-ap*))
+                                   (emit-inst codegen
+                                              (make-va-start-inst
+                                               *sod-ap*
+                                               (argument-name parm-n)))
+                                   (deliver-expr codegen target call)
+                                   (emit-inst codegen
+                                              (make-va-end-inst *sod-ap*))))
                   (codegen-pop-function codegen main main-type))))))
 
       ;; Generate the method body.  We'll work out what to do with it later.