The value NIL is not of type SB-C::CBLOCK when binding SB-C::B

Bug #1793150 reported by Paul F. Dietz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

(defun f308 ()
  (/ (ignore-errors (max 0 (the integer (eval 1)))) -1)
  (max 0 (eval 1)))

==>

The value
  NIL
is not of type
  SB-C::CBLOCK
when binding SB-C::B
   [Condition of type TYPE-ERROR]
[...]
  0: (SB-C::CMOVP #<SB-ASSEM:LABEL 1> #<SB-C::CBLOCK 13 :START c1 {100AA624D3}> NIL) [external]
  1: (SB-C::MAYBE-CONVERT-ONE-CMOV #<SB-C::IR2-BLOCK :START-VOP #<SB-C::VOP :INFO SB-VM::GENERIC-> :ARGS #<SB-C:TN-REF :TN #<SB-C:TN t1 :NORMAL> :WRITE-P NIL :VOP SB-VM::GENERIC->> :RESULTS NIL> :LAST-VOP..
  2: (SB-C::CONVERT-CMOVS #<SB-C:COMPONENT :NAME (FLET "FORM-FUN-4" :IN F308) {100AA20793}>)
  3: (SB-C::IR2-OPTIMIZE #<SB-C:COMPONENT :NAME (FLET "FORM-FUN-4" :IN F308) {100AA20793}>)
  4: (SB-C::%COMPILE-COMPONENT #<SB-C:COMPONENT :NAME (FLET "FORM-FUN-4" :IN F308) {100AA20793}>)
  5: (SB-C::COMPILE-COMPONENT #<SB-C:COMPONENT :NAME (FLET "FORM-FUN-4" :IN F308) {100AA20793}>)
  6: (SB-C::%COMPILE (SB-INT:NAMED-LAMBDA F308 NIL (BLOCK F308 (/ # -1) (MAX 0 #))) #<SB-C::CORE-OBJECT {100AA07153}> :NAME NIL :PATH (SB-C::ORIGINAL-SOURCE-START 0 0))
  7
[...]

There is also a warning during the compile before the error is thrown:

; in: DEFUN F308
; (IGNORE-ERRORS (MAX 0 (THE INTEGER (EVAL 1))))
; --> HANDLER-CASE SB-INT:DX-FLET FLET #:FUN1 BLOCK PROGN VALUES
; ==>
; SB-C::VAL
;
; caught STYLE-WARNING:
; This is not a NUMBER:
; NIL
; See also:
; The SBCL Manual, Node "Handling of Types"

Revision history for this message
Stas Boukarev (stassats) wrote :

4ac5af80745cf6fa9fd73d497067ec6ca9b7b54c

Changed in sbcl:
status: New → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.