Bug in type derivation in ASH
Eric Marsden via Sbcl-devel <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi,
From random-integer testing on AMD64.
* (lisp-implementation-version)
"2.6.0.99-2a51c9781"
* (defun foo (a)
(declare (type (integer -2 17422209769261795) a))
(* 80244663406399 (1- (ash -27 (min 29 (count a '(42)))))))
; in: DEFUN FOO
; (* 80244663406399 (1- (ASH -27 (MIN 29 (COUNT A '#)))))
;
; caught WARNING:
; Derived type of
; (- (ASH -27 (MIN 29 (COUNT COMMON-LISP-USER::A (QUOTE (42))))) 1) is
; (VALUES
; (INTEGER -347717124281138701405307355253
-173858562140569390824985380826)
; &OPTIONAL),
;
; conflicting with its asserted type
; (INTEGER -4413456487351945 -2246850575379172).
; See also:
; The SBCL Manual, Node "Handling of Types"
;
; compilation unit finished
; caught 1 WARNING condition
FOO
* (foo 42)
debugger invoked on a SIMPLE-TYPE-ERROR in thread
#<THREAD tid=99180 "main thread" RUNNING {1200BF0003}>:
Value of (- (ASH -27 (MIN 29 (COUNT A '#))) 1) in
SB-C::X
is
-347717124281138701405307355253,
not a
(INTEGER -4413456487351945 -2246850575379172).
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
_______________________________________________
Sbcl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sbcl-devel