diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2008-04-25 23:25:26 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2008-04-26 01:25:26 +0200 |
commit | 8196a02c5a633e7202f069eb5bfa58978957a823 (patch) | |
tree | 2552f862fb9d6690b39263df9be7913780be6b18 | |
parent | e3b5732b21547a1473879859cf26435f7702be4a (diff) | |
download | gcc-8196a02c5a633e7202f069eb5bfa58978957a823.zip gcc-8196a02c5a633e7202f069eb5bfa58978957a823.tar.gz gcc-8196a02c5a633e7202f069eb5bfa58978957a823.tar.bz2 |
mingw32.h (SUBTARGET_INIT_BUILTINS): New.
2008-04-25 Kai Tietz <kai.tietz@onevision.com>
* config/i386/mingw32.h (SUBTARGET_INIT_BUILTINS): New.
* config/i386/i386.c (ix86_init_builtins): Use of
SUBTARGET_INIT_BUILTINS.
From-SVN: r134683
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/config/i386/mingw32.h | 16 |
3 files changed, 26 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 374615b..1e546d5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-04-25 Kai Tietz <kai.tietz@onevision.com> + + * config/i386/mingw32.h (SUBTARGET_INIT_BUILTINS): New. + * config/i386/i386.c (ix86_init_builtins): Use of + SUBTARGET_INIT_BUILTINS. + 2008-04-25 Jan Hubicka <jh@suse.cz> PR testsuite/35843 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2df9683..1e9776a 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -19806,6 +19806,10 @@ ix86_init_builtins (void) { if (TARGET_MMX) ix86_init_mmx_sse_builtins (); + +#ifdef SUBTARGET_INIT_BUILTINS + SUBTARGET_INIT_BUILTINS; +#endif } /* Errors in the source file can cause expand_expr to return const0_rtx diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h index 200569e..19b57db 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -180,6 +180,22 @@ __enable_execute_stack (void *addr) \ #undef ENABLE_EXECUTE_STACK #define ENABLE_EXECUTE_STACK MINGW_ENABLE_EXECUTE_STACK +#define SUBTARGET_INIT_BUILTINS \ +do { \ + if (TARGET_64BIT_MS_ABI) \ + { \ + /* These builtin functions have a different return \ + type (intptr_t) on 64-bit MS Windows. */ \ + disable_builtin_function ("execl"); \ + disable_builtin_function ("execlp"); \ + disable_builtin_function ("execle"); \ + disable_builtin_function ("execv"); \ + disable_builtin_function ("execvp"); \ + disable_builtin_function ("execve"); \ + } \ + /* Second argument of MS scalb is long, not double. */ \ + disable_builtin_function ("scalb"); \ +} while (0) \ #ifdef IN_LIBGCC2 #include <windows.h> |