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
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
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))
[...]

Revision history for this message
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)))

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

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

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

492211421970dd1f33744ca9da41833a00c31ff3

Changed in sbcl:
status: New → Fix Committed
Revision history for this message
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.

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.