Peter Dolding wrote:
Alex Ionescu wrote:
- -mrtd: Has been fixed and re-broken countless times. This is an example
of one of them: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9601. Still present in 4.2
Please take a closer look at what 4.2 is truly doing. Double set of builtins. -mrtd is swaping the builtins. The last post of so called problem is the expected result. With -mrtd you have stdcall builtins. Without you have cdecl. There are options where this can be still forced to be cdecl or stdcall only for builtins and that would give the result a lot of people would expect or inversed to what people expect.
In theory with a bit of tweeking cdecl and stdcall for builtin calls could be made perfectly acceptable since they are both there.
gcc version 3.4 20030130 (experimental) << mingw trash missing the double set of builtins and the other fix to -mrtd to be correct half of the double buildin patches and many other strange errors caused by mingw own runtime files.
As I said it was fixed. I did not say it was fixed how everyone expected.
I did some more digging. Apparently adding microsoft symbols for stdcall and fastcall in mingw broke builtin auto fixing of call type.
Its nothing uncommon for me on other platforms to #pragma GCC system_header __attribute__((fastcall)) double cos( double x); And let it fall back on the builtin until I can add the function.
It is a form of automatic wrapping that is missing in action.
Peter Dolding
---------------------------------------------------------------------- Get a free email account with anti spam protection. http://www.bluebottle.com