ECL allows redefining structure (with a poor result!)
When I redefine a structure and reference already created object slots are referenced as if the layout hasn't changed.
CL-USER> (defstruct foo b a)
FOO
CL-USER> (make-foo :b 3 :a 4)
#S(FOO :B 3 :A 4)
CL-USER> (defstruct foo a b)
FOO
CL-USER> **
#S(FOO :A 3 :B 4)
This is not a bug because in light of standard it is undefined behavior. That said we should do something what makes sense: signal a condition (we may provide some restarts like SBCL does)
Provide details regarding ECL version (or preferably commit), operating system and if revelant the build options and versions of the build tools.
CL-USER> (list (lisp-implementation-version)
(ext:lisp-implementation-vcs-id)`
(software-type)
(software-version)
(machine-type)
*features*)
("16.1.3" "0476bca326ede723e883fe06c19c2cb748b1deec" (SOFTWARE-TYPE)
"4.15.0-38-generic" "x86_64"
(:BORDEAUX-THREADS :THREAD-SUPPORT CFFI-FEATURES:FLAT-NAMESPACE
CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI CFFI-SYS::FLAT-NAMESPACE
:X86-64 :SWANK :SERVE-EVENT :PROFILE :QUICKLISP :ASDF-PACKAGE-SYSTEM :ASDF3.1
:ASDF3 :ASDF2 :ASDF :OS-UNIX :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :WALKER
:CDR-1 :CDR-5 :LINUX :FORMATTER :CDR-7 :ECL-WEAK-HASH :LITTLE-ENDIAN
:ECL-READ-WRITE-LOCK :LONG-LONG :UINT64-T :UINT32-T :UINT16-T
:RELATIVE-PACKAGE-NAMES :LONG-FLOAT :UNICODE :DFFI :CLOS-STREAMS :CMU-FORMAT
:UNIX :ECL-PDE :DLOPEN :CLOS :THREADS :BOEHM-GC :ANSI-CL :COMMON-LISP
:IEEE-FLOATING-POINT :CDR-14 :PREFIXED-API :FFI :X86_64 :COMMON :ECL))
Some additional notes.