March 27, 2026
2:16 p.m.
it's difficult to predict what was actually intended
If you're taking 'every per-the-spec UB is unreachable code' as an axiom, then you live in the utopian world of academia, and not in the messy world of programming in practice. In this case, I strongly suspect that struct UNWIND_INFO contains some kind of variable-size flexible array member, meaning that accessing it as if it was bigger will do the right thing in practice. (Also, fair chance it's UB per the C++ spec, but the compilers choose to implement it as doing the obvious memory operations.) And yes, the && || thing you fixed is the other change I'm thinking of. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10471#note_134068