src/c-types-parse.lisp: Plain types don't have `declspec' slots.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 30 Aug 2015 09:58:38 +0000 (10:58 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 6 Sep 2015 11:30:04 +0000 (12:30 +0100)
Type names count as declaration specifiers, so `scan-declspec' has to
cope with them.  Fortunately, bare types don't come with tags, so this
is easy to work around.

src/c-types-parse.lisp

index 39a805e..e0cfc88 100644 (file)
                       (gethash kw *declspec-map*))))))
     (cond ((or (not ds) (and predicate (not (funcall predicate ds))))
           (values (list indicator) nil nil))
-         ((ds-taggedp ds)
+         ((and (typep ds 'declspec) (ds-taggedp ds))
           (scanner-step scanner)
           (if (eq (token-type scanner) :id)
               (let ((ty (make-c-tagged-type (ds-label ds)