bug in sb-c:convert-mv-bind-to-let introduced in 70f85676b

Bug #1811623 reported by Pouar on 2019-01-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Undecided
Unassigned

Bug Description

Seems to be causing this when debug is set to less than 2
The demo they're talking about is loaded with
(ql:quickload :clim-examples) (clim-demo:run-demo 'list-test)
selecting any value but the first one causes it to vanish since commit 70f85676b in SBCL
https://github.com/McCLIM/McCLIM/issues/681
reverting 70f85676b seems to make the problem go away

Stas Boukarev (stassats) wrote :

Any test case? Or which function gets broken?

Stas Boukarev (stassats) wrote :

Managed to come up with a test case without looking at mcclim, let's see if fixing it will fix mcclim as well.

(funcall (compile nil `(lambda (m)
                         (let ((z (random 44))
                               (j (princ-to-string m)))
                           (multiple-value-bind (x y) (if m
                                                          (values z 2)
                                                          (values j 4))
                             (values x y )))))
         t)
=> "T", 2

Stas Boukarev (stassats) wrote :

2d864c2ed67e2a7013896f61720eb4c09382783f

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

I've augmented the random tester with a generator for the mvb/if pattern. I'll see if it causes this bug to expose itself.

(The approach I want to take is writing a macro for specific patterns involved in bugs, especially if the tester missed them. The use of a macro enables special simplification rules to be invoked on that code, if a bug is found.)

Pouar (pouar) wrote :

Seems to have fixed it

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

Other bug subscribers