https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116885
--- Comment #17 from Jaroslav Fojtík <JaFojtik at seznam dot cz> --- The only reasonable source of this crash was that doubles are passed different way than uint64_t. May be that doubles are newly passed through different stack/pipe. Only looking to assembly might reveal difference of doubles and QWORDS. All the previous GCCs from 2.95 till 13 did not crash on this and worked as expected. Also Borland C and MSVC worked a same. That was why I have blamed GCC to do something wrongly. I have functionable workaround here that works with GCC13 as well.