https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108868
Bug ID: 108868 Summary: [13 Regression] ocaml-dune miscompilation on i686 since r13-5965 Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- Created attachment 54499 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54499&action=edit spawn_stubs.i.xz The following source from ocaml-dune seems to be miscompiled starting with r13-5965 with -mfpmath=sse -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -O2 -fno-strict-aliasing -fwrapv -fstack-protector-strong -fcf-protection=full -fPIC -fexceptions -fstack-protector-strong -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full The spawn_unix function uses (conditionally) vfork and the vfork child now clobbers -672(%ebp) - 9 is stored in there. The main problem I see is that .ABNORMAL_DISPATCHER (0) call disappears in cddce1 pass.