https://bugs.winehq.org/show_bug.cgi?id=36783
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX
--- Comment #2 from Austin English austinenglish@gmail.com --- (In reply to Sebastian Lackner from comment #1)
I fear we cannot really fix this. For me the corresponding code looks okay:
--- snip --- 986 /* simulate a call to set_test_val(10) */ 987 stack = (int *)ctx.Esp; 988 stack[-1] = 10; // <-- 989 stack[-2] = ctx.Eip; // <-- 990 ctx.Esp -= 2 * sizeof(int *); 991 ctx.Eip = (DWORD)set_test_val; --- snip --- ( http://source.winehq.org/source/dlls/kernel32/tests/thread.c#L986 )
The problem is that Valgrind doesn't understand what we're doing here (manually adjusting the stack pointer and writing values on the stack to simulate a function call).
Marked as intentional, thanks.