Line 4667 of cod2.d is: if (pretregs & (mES | mCX) || e.Ety & mTYfar) but that branch should only be taken for 16 bit code. The code generated is benign, but it shouldn't be generated. The fix is: if (I16 && pretregs & (mES | mCX) || e.Ety & mTYfar)
@WalterBright created dlang/dmd pull request #17065 "fix bugzilla Issue 24861 - Vestige of 16 bit code being accidentally …" fixing this issue: - fix bugzilla Issue 24861 - Vestige of 16 bit code being accidentally generated https://github.com/dlang/dmd/pull/17065
dlang/dmd pull request #17065 "fix bugzilla Issue 24861 - Vestige of 16 bit code being accidentally …" was merged into master: - d8d94b1b04ee68823d03663e6f21e5c8a77553e5 by Walter Bright: fix bugzilla Issue 24861 - Vestige of 16 bit code being accidentally generated https://github.com/dlang/dmd/pull/17065