X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/0e7cdea08f8c635a46e66bd0a96bb6f12b907bbc..91d9ba3cb6ed57640dc29c2b2e73bb89e2628484:/src/c-types-parse.lisp?ds=sidebyside diff --git a/src/c-types-parse.lisp b/src/c-types-parse.lisp index 018c108..0a6b5ab 100644 --- a/src/c-types-parse.lisp +++ b/src/c-types-parse.lisp @@ -70,7 +70,7 @@ ;; accessor functions later. ((label :type keyword :initarg :label :reader ds-label) (name :type string :initarg :name :reader ds-name) - (kind :type (member type sign size qualifier) + (kind :type (member type complexity sign size qualifier) :initarg :kind :reader ds-kind) (taggedp :type boolean :initarg :taggedp :initform nil :reader ds-taggedp)) @@ -198,10 +198,11 @@ (let ((type (ds-type specs)) (size (ds-size specs)) (sign (ds-sign specs)) + (cplx (ds-complexity specs)) (quals (mapcar #'ds-label (ds-qualifiers specs)))) (cond ((typep type 'c-type) (qualify-c-type type quals)) - ((or type size sign) + ((or type size sign cplx) (when (and sign (eq (ds-label sign) :signed) (eq (ds-label type) :int)) (setf sign nil)) @@ -213,7 +214,8 @@ (make-simple-type (format nil "~{~@[~A~^ ~]~}" (mapcar #'ds-name (remove nil - (list sign size type)))) + (list sign cplx + size type)))) quals)) (t nil))))