(defparameter *declspec-map*
(let ((map (make-hash-table :test #'equal)))
- (dolist (item '((type :void :char :int :float :double
- (:bool :compat "_Bool"))
+ (dolist (item '((type :char :int :float :double)
(complexity (:complex :compat "_Complex")
(:imaginary :compat "_Imaginary"))
((type :taggedp t) :enum :struct :union)
;; Turns out to be easier to do this by hand.
(let ((ds (and (eq (token-type scanner) :id)
(let ((kw (token-value scanner)))
- (or (and (boundp '*module-type-map*)
+ (or (gethash kw *declspec-map*)
+ (and (boundp '*module-type-map*)
(gethash kw *module-type-map*))
- (gethash kw *declspec-map*))))))
+ (find-simple-c-type kw))))))
(cond ((or (not ds) (and predicate (not (funcall predicate ds))))
(values (list indicator) nil nil))
((and (typep ds 'declspec) (ds-taggedp ds))
(disallow-keyword-functions (type)
(when (typep type 'c-keyword-function-type)
(error "Functions with keyword arguments are only ~
- allowed at top-level.")))
+ allowed at top-level")))
(star ()
;; Prefix: `*' qualifiers