More operand #<SB-C:TN-REF :TN #<SB-C:TN '0!1 :CONSTANT> :WRITE-P NIL :VOP LIST> used more than once in its VOP.

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

Bug Description

(defun f139 (x)
  (list (list nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil) (list nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil) (list nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil) (list nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil)
        (list nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil)
        (list nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil)
        (list nil) (list nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil nil nil nil nil nil)
        (list nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil)
        (list nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil nil)
        (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
              nil nil nil nil nil nil nil)
        x x x x x x x x
        (setf (car x) 0)
        (setf (cdr x) 0)))

==>

More operand #<SB-C:TN-REF
               :TN #<SB-C:TN '0!1 :CONSTANT>
               :WRITE-P NIL
               :VOP LIST> used more than once in its VOP.
   [Condition of type SIMPLE-ERROR]
[...]
  0: (SB-KERNEL:ASSERT-ERROR (FLET ((SB-C::FROB # #)) (AND (SB-C::FROB #) (SB-C::FROB #))) NIL NIL "More operand ~S used more than once in its VOP." #<SB-C:TN-REF :TN #<SB-C:TN '0!1 :CONSTANT> :WRITE-P NIL..
  1: (SB-C::COALESCE-MORE-LTN-NUMBERS #<SB-C::IR2-BLOCK :START-VOP #1=#<SB-C::VOP :INFO LIST :ARGS #<SB-C:TN-REF :TN #<SB-C:TN t2 :NORMAL> :WRITE-P NIL :VOP LIST> :RESULTS #<SB-C:TN-REF :TN #<SB-C:TN t3 :..
  2: (SB-C::LIFETIME-PRE-PASS #<SB-C:COMPONENT :NAME F139 {100FE5A003}>)
  3: (SB-C::LIFETIME-ANALYZE #<SB-C:COMPONENT :NAME F139 {100FE5A003}>)
  4: (SB-C::%COMPILE-COMPONENT #<SB-C:COMPONENT :NAME F139 {100FE5A003}>)
  5: (SB-C::COMPILE-COMPONENT #<SB-C:COMPONENT :NAME F139 {100FE5A003}>)
  6: (SB-C::%COMPILE (SB-INT:NAMED-LAMBDA F139 (X) (BLOCK F139 (LIST # # # # # ...))) #<SB-C::CORE-OBJECT {100FE08703}> :NAME NIL :PATH (SB-C::ORIGINAL-SOURCE-START 0 0))
[...]

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

Simplified:

(defun f139 (x)
  (list (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        (list nil)
        x x x x x x x x
        (setf (car x) 0)
        (setf (cdr x) 0)))

Stas Boukarev (stassats) wrote :

Further simplified:
(defun f (x)
  (list 0 0 . #.(make-list 61 :initial-element 'x)))

Stas Boukarev (stassats) wrote :

492211421970dd1f33744ca9da41833a00c31ff3

Changed in sbcl:
status: New → Fix Committed
Paul F. Dietz (paul-f-dietz) wrote :

This bug showed up in some real code at my workplace, so this bug fix had real world impact.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers