chiark / gitweb /
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 39a805efbd313d45e62c520ec388c292f2415243..e0cfc882a7318371cbfe02ef791d2bd3e5a0ef21 100644 (file)
@@ -233,7 +233,7 @@ (defun scan-declspec
                       (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)