http://bugs.winehq.org/show_bug.cgi?id=25273
--- Comment #3 from Jörg Höhle hoehle@users.sourceforge.net 2010-12-01 15:45:51 CST --- Created an attachment (id=32287) --> (http://bugs.winehq.org/attachment.cgi?id=32287) patch to dlls/msvrt/string.c but not to tests/misc.c
UNIX long double != MS long double even when they all use Intel's 80 bit FP format. Their sizeof() may diffe.r
Here's a fix to dlls/msvcrt that decouples use of long double on the host OS from what MS expects. winetest.exe passes the msvcrt/misc test, proving that stack usage when passing parameters is correct.
Alas, I've not figured out how to do the same with the test code in msvcrt/tests/misc.c: It must not declare *pI10_OUTPUT using long double as that is wrong on every UNIX system where sizeof(long double) != 12. Yet the test code still wants to make use of some floating point literals.
I.e., msvcrt/tests/misc.c is bogus and still needs a patch.