On Fri, May 22, 2020 at 7:22 AM Eli Zaretskii wrote: > #0 PSEUDOVECTORP (code=, a=) at lisp.h:1720 > #1 MARKERP (x=) at lisp.h:2618 > #2 CHECK_MARKER (x=XIL(0xa000000018ac0518)) at marker.c:133 > #3 0x010f073c in Fmarker_position (marker=XIL(0xa000000018ac0518)) > at marker.c:452 I think I've worked it out: it's this mingw bug: https://sourceforge.net/p/mingw-w64/bugs/778/ On mingw, if is included before/instead of stddef.h, alignof (max_align_t) == 16. However, as can be seen by the backtrace above, Eli's malloc only returned an 8-byte-aligned block. That's not normally a problem, because mark_maybe_object doesn't care about alignment; but in conjunction with the gcc behavior change, we rely or mark_maybe_pointer to mark the pointer, and it doesn't, because the pointer is not aligned to a LISP_ALIGNMENT = 16-byte boundary. Brute-force patch attached until we can work out how to fix this properly.