Be more defensive: only enable the *CALL macros when using GCC on
Linux, since we know the current definitions work there and have a positive effect. This closes SF bug #692878.
This commit is contained in:
parent
5bd3d020d3
commit
f668c507d9
@ -20,19 +20,20 @@
|
||||
and therefore subject to change.
|
||||
*/
|
||||
|
||||
#if defined(__GNUC__) && !defined(sun)
|
||||
/* regparm() generates warnings on Solaris boxes. See SF bug #692878.
|
||||
#if defined(__GNUC__) && defined(linux)
|
||||
/* We'll use this version by default only where we know it helps.
|
||||
|
||||
regparm() generates warnings on Solaris boxes. See SF bug #692878.
|
||||
|
||||
Instability reported with egcs on a RedHat Linux 7.3.
|
||||
Let's comment it out:
|
||||
Let's comment out:
|
||||
#define FASTCALL __attribute__((stdcall, regparm(3)))
|
||||
and let's try this:
|
||||
*/
|
||||
#define FASTCALL __attribute__((regparm(3)))
|
||||
#define PTRCALL
|
||||
#define PTRFASTCALL __attribute__((regparm(3)))
|
||||
#endif
|
||||
|
||||
#elif defined(WIN32)
|
||||
/* Using __fastcall seems to have an unexpected negative effect under
|
||||
MS VC++, especially for function pointers, so we won't use it for
|
||||
now on that platform. It may be reconsidered for a future release
|
||||
@ -40,11 +41,8 @@
|
||||
Likely reason: __fastcall on Windows is like stdcall, therefore
|
||||
the compiler cannot perform stack optimizations for call clusters.
|
||||
*/
|
||||
#define FASTCALL
|
||||
#define PTRCALL
|
||||
#define PTRFASTCALL
|
||||
|
||||
#endif
|
||||
/* Make sure all of these are defined if they aren't already. */
|
||||
|
||||
#ifndef FASTCALL
|
||||
#define FASTCALL
|
||||
|
Loading…
Reference in New Issue
Block a user