Peter Dolding wrote:
Alex Ionescu wrote:
3) -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