X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e0808c472145fc81e52898bc9ac289e10c4f4f41..b7fcf94152e4c1938fbca55d13b1e6a64b694bd6:/src/builtin.lisp diff --git a/src/builtin.lisp b/src/builtin.lisp index 2d59158..fbef93b 100644 --- a/src/builtin.lisp +++ b/src/builtin.lisp @@ -85,6 +85,9 @@ (define-class-slot "initsz" (class) size-t (format nil "sizeof(struct ~A)" (ilayout-struct-tag class))) +(define-class-slot "align" (class) size-t + (format nil "SOD__ALIGNOF(struct ~A)" (ilayout-struct-tag class))) + (define-class-slot "imprint" (class stream) (* (fun (* void) ("/*p*/" (* void)))) (format nil "~A__imprint" class) @@ -140,9 +143,10 @@ static void *~A__init(void *p)~%{~%" class) " struct ~A *sod__obj = ~A__imprint(p);~2%" (ilayout-struct-tag class) class) (setf used t)) - (format stream " {~% ~A ~A =" - (sod-slot-type dslot) - *sod-tmp-val*) + (format stream " {~% ") + (pprint-c-type (sod-slot-type dslot) stream + *sod-tmp-val*) + (format stream " =") (ecase (sod-initializer-value-kind init) (:simple (write (sod-initializer-value-form init) :stream stream @@ -316,7 +320,7 @@ static const SodClass *const ~A__cpl[] = { :case :common) :state nil))) (with-module-environment (module) - (dolist (name '("va_list" "size_t" "ptrdiff_t")) + (dolist (name '("va_list" "size_t" "ptrdiff_t" "wchar_t")) (add-to-module module (make-instance 'type-item :name name))) (flet ((header-name (name) (concatenate 'string "\"" (string-downcase name) ".h\""))