* bug fix: some forms of AND, OR, and COND resulted in expansions that could
result in their subforms being treated as top level forms. (reported by
James Knight)
+ * bug fix: On x86/x86-64 alien functions declared to return integers shorter
+ than a machine register could leave garbage in the high bits of the
+ result register (bug 316325).
* bug fix: disable address space randomization Linux/x86-64 as well,
not just x86-64. (reported by Ken Olum)
+ * bug fix: Attempting to DEREF an (ALIEN (* T)) would produce a WARNING and
+ generate incorrect code.
* bug fix: #201; type inference for CONS and ARRAY types could derive
wrong results in the presence of eg. RPLACA or ADJUST-ARRAY.
* bug fix: special variables with a proclaimed specific subtype of FUNCTION
(abort-ir1-transform "too many indices for pointer deref: ~W"
(length indices)))
(let ((element-type (alien-pointer-type-to alien-type)))
+ (unless element-type
+ (give-up-ir1-transform "unable to open code deref of wild pointer type"))
(if indices
(let ((bits (alien-type-bits element-type))
(alignment (alien-type-alignment element-type)))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.28.21"
+"1.0.28.22"