For example, say `c-type-int' rather than `(c-type int)'.
(every (lambda (arg)
(or (eq arg :ellipsis)
(argument-name arg)
- (eq (argument-type arg) (c-type void))))
+ (c-type-equal-p (argument-type arg)
+ c-type-void)))
(c-function-arguments type)))
(error "Abstract declarators not permitted in method definitions")))
(every (lambda (message-arg method-arg)
(if (eq message-arg :ellipsis)
(c-type-equal-p (argument-type method-arg)
- (c-type va-list))
+ c-type-va-list)
(c-type-equal-p (argument-type message-arg)
(argument-type method-arg))))
message-args method-args)))
(codegen-push codegen)
(loop for (name init) in '(("aa" 1) ("bb" 0))
- do (ensure-var codegen name (c-type int) init))
+ do (ensure-var codegen name c-type-int init))
(codegen-push codegen)
- (with-temporary-var (codegen r (c-type int))
+ (with-temporary-var (codegen r c-type-int)
(emit-inst codegen(make-set-inst r "u%v"))
- (with-temporary-var (codegen q (c-type int))
+ (with-temporary-var (codegen q c-type-int)
(emit-inst codegen (make-set-inst q "u/v"))
- (with-temporary-var (codegen a (c-type int))
+ (with-temporary-var (codegen a c-type-int)
(emit-insts codegen
(list (make-set-inst a "aa")
(make-set-inst "aa" "bb")
(loop for (name init) in '(("u" "atoi(argv[1])")
("v" "atoi(argv[2])")
("a"))
- do (ensure-var codegen name (c-type int) init))
- (ensure-var codegen "g" (c-type int)
+ do (ensure-var codegen name c-type-int init))
+ (ensure-var codegen "g" c-type-int
(make-call-inst "gcd" (list "u" "v" "&a")))
(emit-inst codegen (make-expr-inst
(make-call-inst "printf"
(define-on-demand-slot basic-message no-varargs-tail (message)
(mapcar (lambda (arg)
(if (eq arg :ellipsis)
- (make-argument *sod-ap* (c-type va-list))
+ (make-argument *sod-ap* c-type-va-list)
arg))
(sod-message-argument-tail message)))
(message sod-message)
(type c-function-type))
(with-slots ((msgtype %type)) message
- (unless (c-type-equal-p (c-type-subtype type) (c-type void))
+ (unless (c-type-equal-p (c-type-subtype type) c-type-void)
(error "Method return type ~A must be `void'" (c-type-subtype type)))
(unless (argument-lists-compatible-p (c-function-arguments msgtype)
(c-function-arguments type))
(return-type (c-type-subtype (sod-message-type message)))
(msgargs (sod-message-argument-tail message))
(arguments (if (varargs-message-p message)
- (cons (make-argument *sod-master-ap*
- (c-type va-list))
+ (cons (make-argument *sod-master-ap* c-type-va-list)
(butlast msgargs))
msgargs)))
(c-type (fun (lisp return-type)
method)))))
.
(if (varargs-message-p message)
- (cons (make-argument *sod-master-ap*
- (c-type va-list))
+ (cons (make-argument *sod-master-ap* c-type-va-list)
method-args)
method-args)))))
(declare (ignore slot-names))
(with-slots (message target) codegen
(setf target
- (if (eq (c-type-subtype (sod-message-type message)) (c-type void))
+ (if (eq (c-type-subtype (sod-message-type message)) c-type-void)
:void
:return))))
("me" (* (class tail)))
. raw-entry-args))))
(codegen-push codegen)
- (ensure-var codegen *sod-ap* (c-type va-list))
+ (ensure-var codegen *sod-ap* c-type-va-list)
(convert-stmts codegen entry-target return-type
(lambda (target)
(emit-inst codegen
(convert-stmts codegen target
(c-type-subtype (sod-method-type direct-method))
(lambda (var)
- (ensure-var codegen *sod-tmp-ap* (c-type va-list))
+ (ensure-var codegen *sod-tmp-ap* c-type-va-list)
(emit-inst codegen
(make-va-copy-inst *sod-tmp-ap*
*sod-ap*))
(return-type (c-type-subtype message-type))
(raw-args (sod-message-argument-tail message))
(arguments (if (varargs-message-p message)
- (cons (make-argument *sod-ap*
- (c-type va-list))
+ (cons (make-argument *sod-ap* c-type-va-list)
(butlast raw-args))
raw-args)))
(codegen-push codegen)