Error in corrupted CERROR when first arg is not a simple string

Bug #1749307 reported by Paul F. Dietz on 2018-02-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Undecided
Unassigned

Bug Description

(compile nil (let ((a (make-array '(1) :element-type 'base-char :fill-pointer 1 :initial-element #\a))) `(lambda () (cerror ,a "x"))))

==>

The value
  "a"
is not of type
  SIMPLE-STRING
when binding STRING
[...]
  0: (SB-FORMAT:%COMPILER-WALK-FORMAT-STRING "a" NIL) [external]
  1: (SB-C::CERROR-OPTIMIZER-OPTIMIZER #<SB-C::COMBINATION :FUN #<SB-C::REF :LEAF #<SB-C::GLOBAL-VAR :%SOURCE-NAME CERROR :TYPE #1=#<SB-KERNEL:FUN-TYPE #> :DEFINED-TYPE #1# :WHERE-FROM :DECLARED :KIND :GL..
  2: (SB-C::IR1-OPTIMIZE-COMBINATION #<SB-C::COMBINATION :FUN #<SB-C::REF :LEAF #<SB-C::GLOBAL-VAR :%SOURCE-NAME CERROR :TYPE #1=#<SB-KERNEL:FUN-TYPE #> :DEFINED-TYPE #1# :WHERE-FROM :DECLARED :KIND :GLOB..
[...]

Paul F. Dietz (paul-f-dietz) wrote :

Similar error for non-simple string in second position

(let ((x (make-array '(1) :element-type 'base-char :fill-pointer 1 :initial-element #\B))) (compile nil `(lambda () (cerror "a" ,x))))

Stas Boukarev (stassats) wrote :

4023cc8820dad1ce5efa892c5940669414c3bdec

Changed in sbcl:
status: New → Fix Committed
Stas Boukarev (stassats) on 2018-02-28
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers