New simple types added using `define-simple-c-type' won't be present in
the `*declspec-map*', or the `*module-type-map*', so they won't be found
at all using the previous search. Now, look use `find-simple-c-type' if
the other two lookups don't work.
Now that this works, we don't need `void' or `bool' in the `*declspec-
map*', because they don't accept any modifiers.
(defparameter *declspec-map*
(let ((map (make-hash-table :test #'equal)))
(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)
(complexity (:complex :compat "_Complex")
(:imaginary :compat "_Imaginary"))
((type :taggedp t) :enum :struct :union)
(let ((kw (token-value scanner)))
(or (gethash kw *declspec-map*)
(and (boundp '*module-type-map*)
(let ((kw (token-value scanner)))
(or (gethash kw *declspec-map*)
(and (boundp '*module-type-map*)
- (gethash kw *module-type-map*)))))))
+ (gethash kw *module-type-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))
(cond ((or (not ds) (and predicate (not (funcall predicate ds))))
(values (list indicator) nil nil))
((and (typep ds 'declspec) (ds-taggedp ds))