summaryrefslogtreecommitdiff
path: root/config/intdiv0.m4
diff options
context:
space:
mode:
authorDJ Delorie <dj@delorie.com>2004-09-23 19:43:47 +0000
committerDJ Delorie <dj@delorie.com>2004-09-23 19:43:47 +0000
commitb950f12782a8f86cf0530c4777ee1ffb86ab27f9 (patch)
treed274bfec3d3497a719a8f7b6a998f3f57fc2dd5f /config/intdiv0.m4
parent190e2f916b9658702ad050cffae35f287bb6753e (diff)
downloadgdb-b950f12782a8f86cf0530c4777ee1ffb86ab27f9.tar.gz
Merge from gcc
2004-09-22 Kelley Cook <kcook@gcc.gnu.org> * gettext-sister.m4: Renamed from gettext.m4 * codeset.m4, gettext.m4, glibc21.m4, iconv.m4, intdiv0.m4, po.m4, inttypes.m4, inttypes-pri.m4, inttypes_h.m4, lcmessage.m4, lib-ld.m4, lib-link.m4, lib-prefix.m4, nls.m4, progtest.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4: Import from gettext-0.12.1 sources.
Diffstat (limited to 'config/intdiv0.m4')
-rw-r--r--config/intdiv0.m472
1 files changed, 72 insertions, 0 deletions
diff --git a/config/intdiv0.m4 b/config/intdiv0.m4
new file mode 100644
index 00000000000..55dddcf1c24
--- /dev/null
+++ b/config/intdiv0.m4
@@ -0,0 +1,72 @@
+# intdiv0.m4 serial 1 (gettext-0.11.3)
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gt_INTDIV0],
+[
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
+ gt_cv_int_divbyzero_sigfpe,
+ [
+ AC_TRY_RUN([
+#include <stdlib.h>
+#include <signal.h>
+
+static void
+#ifdef __cplusplus
+sigfpe_handler (int sig)
+#else
+sigfpe_handler (sig) int sig;
+#endif
+{
+ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
+ exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+ signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+ signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL. */
+#if defined (__sparc__) && defined (__linux__)
+ signal (SIGILL, sigfpe_handler);
+#endif
+
+ z = x / y;
+ nan = y / y;
+ exit (1);
+}
+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
+ [
+ # Guess based on the CPU.
+ case "$host_cpu" in
+ alpha* | i[34567]86 | m68k | s390*)
+ gt_cv_int_divbyzero_sigfpe="guessing yes";;
+ *)
+ gt_cv_int_divbyzero_sigfpe="guessing no";;
+ esac
+ ])
+ ])
+ case "$gt_cv_int_divbyzero_sigfpe" in
+ *yes) value=1;;
+ *) value=0;;
+ esac
+ AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
+ [Define if integer division by zero raises signal SIGFPE.])
+])