(let* ((message (codegen-message codegen))
(message-type (sod-message-type message))
(return-type (c-type-subtype message-type))
- (arguments (mapcar (lambda (arg)
- (if (eq (argument-name arg) *sod-ap*)
- (make-argument *sod-master-ap*
- (c-type va-list))
- arg))
- (sod-message-no-varargs-tail message))))
+ (raw-args (sod-message-argument-tail message))
+ (arguments (if (varargs-message-p message)
+ (cons (make-argument *sod-master-ap*
+ (c-type va-list))
+ (butlast raw-args))
+ raw-args)))
(codegen-push codegen)
(ensure-ilayout-var codegen super)
(funcall body (codegen-target codegen))