https://bugs.winehq.org/show_bug.cgi?id=40128
--- Comment #6 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Sergey Isakov from comment #5)
Anyway "|| !once++" has no sense, because most time it means "|| FALSE", nothing.
I assume you make wrong assumptions about evaluation order of arguments in if() conditions. The second term is not evaluated at all if the first condition is false. Nevertheless, this bug tracker is not the right place to discuss about C standards. You will have to believe me that its correct or look it up on your own. ;)