Public bug reported:

sbcl seem to rely on undefined behaviour in its use of defstructs with
constuctors that don't initialize all slots (sbcl seem to assume that
these slots are initialized to nil).

Example:

(defstruct (hugo (:constructor make-hugo (a))) a b)
(hugo-b (make-hugo 23))

returns nil in sbcl but #:UNBOUND in clasp (and I believe clasp is
within the standard doing this)

This - potentially wrong - pattern is used in the sbcl code base in 5
places.

The attached patched explicitely initializes the slots to nil not
covered in the constructor.

Did self build sbcl and run all tests (sucessfull).

** Affects: sbcl (Ubuntu)
     Importance: Undecided
         Status: New

** Patch added: "Patch defstruct use undefined behaviour"
   
https://bugs.launchpad.net/bugs/1866493/+attachment/5334553/+files/0001-Initialize-slots-to-nil-not-initialized-in-contructo.patch

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1866493

Title:
  Undefined behaviour in defstruct use

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sbcl/+bug/1866493/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to