Basic constructor macro for align-spec-alignas-ambig structures.
(make-align-spec-alignas-ambig [:expr/type <expr/type>])
This is the usual way to construct align-spec-alignas-ambig structures. It simply conses together a structure with the specified fields.
This macro generates a new align-spec-alignas-ambig structure from scratch. See also change-align-spec-alignas-ambig, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-align-spec-alignas-ambig (&rest args) (std::make-aggregate 'align-spec-alignas-ambig args '((:expr/type)) 'make-align-spec-alignas-ambig nil))
Function:
(defun align-spec-alignas-ambig (expr/type) (declare (xargs :guard (amb-expr/tyname-p expr/type))) (declare (xargs :guard t)) (b* ((expr/type (mbe :logic (amb-expr/tyname-fix expr/type) :exec expr/type))) (cons :alignas-ambig expr/type)))