mirror of https://github.com/yasm/yasm.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.9 KiB
72 lines
1.9 KiB
# 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.]) |
|
])
|
|
|