master: More specifier-type type mismatches
stassats via Sbcl-commits <[email protected]> Sat, 23 May 2026 23:52:04 +0000
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The branch "master" has been updated in SBCL:
via 8bd18308746d7212b1e02e81fc1a75573baee400 (commit)
from 9bebe3a3950961de344b03c21cd527ab93accb44 (commit)
- Log -----------------------------------------------------------------
commit 8bd18308746d7212b1e02e81fc1a75573baee400
Author: Stas Boukarev <[email protected]>
Date: Sun May 24 02:47:50 2026 +0300
More specifier-type type mismatches
---
src/compiler/bitops-derive-type.lisp | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/compiler/bitops-derive-type.lisp b/src/compiler/bitops-derive-type.lisp
index 2b8a96f0f..ca9d5ab3e 100644
--- a/src/compiler/bitops-derive-type.lisp
+++ b/src/compiler/bitops-derive-type.lisp
@@ -378,7 +378,7 @@
(specifier-type '(integer 1)))))
(if type
(type-intersection type r)
- (specifier-type r))))))
+ r)))))
;; (logxor x (1+ x)) is positive, except -1 => -1.
(multiple-value-bind (name combination args)
(combination-matches* '(+) '(* 1) (lvar-uses y) :cast-type (specifier-type 'integer))
@@ -390,22 +390,22 @@
(specifier-type '(integer 1)))))
(if type
(type-intersection type r)
- (specifier-type r))))))
+ r)))))
;; (logxor x (- x)) is <= 0
(combination-case (x :cast (specifier-type 'integer))
(%negate (*)
(when (same-leaf-ref-p (car args) y)
(multiple-value-bind (len pos neg low high) (integer-type-length (lvar-type y))
(declare (ignore pos neg))
- (let* ((int (if len
- (make-numeric-type 'integer
- (ash -1 (integer-length (max (abs low) (abs high))))
- (if (<= low 0 high)
- 0
- -2))
- (if (types-equal-or-intersect (lvar-type y) (specifier-type '(eql 0)))
- (specifier-type '(integer * 0))
- (specifier-type '(integer * -2))))))
+ (let ((int (if len
+ (make-numeric-type 'integer
+ (ash -1 (integer-length (max (abs low) (abs high))))
+ (if (<= low 0 high)
+ 0
+ -2))
+ (if (types-equal-or-intersect (lvar-type y) (specifier-type '(eql 0)))
+ (specifier-type '(integer * 0))
+ (specifier-type '(integer * -2))))))
(if type
(type-intersection type int)
int)))))))))
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL