https://bugs.winehq.org/show_bug.cgi?id=37358
--- Comment #8 from Piotr Caban piotr.caban@gmail.com --- (In reply to Wylda from comment #5)
By the comment 4 you mean, that the patch isn't correct solution?
The application ships msvcp71.dll, so it can depend on very version specific behavior. The fact that it sets EAX to 0 is only a side effect that may be not preserved between different version of msvcp71, it can probably even change if it's compiled with different optimization level.
(In reply to Michael Müller from comment #6)
@Piotr: Did you maybe forget to alter the Wine's assembler wrapper, which is used to call fastcall functions, in your tests? It uses eax as temporary storage for the return address.
It's not a problem, the assembler just sets EAX to non-zero value. Comparing it later to 0 is OK. You don't need to change it in this case.
You're also changing different version of dll. I'm changing msvcp71/.../msvcp90 and testing it on msvcp90, you're doing it for msvcp60. Here are the tests results for msvcp90: https://testbot.winehq.org/JobDetails.pl?Key=9389 According to them EAX is always set to 0 when 32-bit tests are run.