From 8196a02c5a633e7202f069eb5bfa58978957a823 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Fri, 25 Apr 2008 23:25:26 +0000 Subject: [PATCH] mingw32.h (SUBTARGET_INIT_BUILTINS): New. 2008-04-25 Kai Tietz * config/i386/mingw32.h (SUBTARGET_INIT_BUILTINS): New. * config/i386/i386.c (ix86_init_builtins): Use of SUBTARGET_INIT_BUILTINS. From-SVN: r134683 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.c | 4 ++++ gcc/config/i386/mingw32.h | 16 ++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 374615b4546..1e546d5164d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-04-25 Kai Tietz + + * 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 PR testsuite/35843 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2df9683f457..1e9776acabb 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 200569ed090..19b57dbecc8 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