Blame m4/intdiv0.m4

Packit Service f629e6
# intdiv0.m4 serial 6 (gettext-0.18.2)
Packit Service f629e6
dnl Copyright (C) 2002, 2007-2008, 2010-2014 Free Software Foundation, Inc.
Packit Service f629e6
dnl This file is free software; the Free Software Foundation
Packit Service f629e6
dnl gives unlimited permission to copy and/or distribute it,
Packit Service f629e6
dnl with or without modifications, as long as this notice is preserved.
Packit Service f629e6
Packit Service f629e6
dnl From Bruno Haible.
Packit Service f629e6
Packit Service f629e6
AC_DEFUN([gt_INTDIV0],
Packit Service f629e6
[
Packit Service f629e6
  AC_REQUIRE([AC_PROG_CC])dnl
Packit Service f629e6
  AC_REQUIRE([AC_CANONICAL_HOST])dnl
Packit Service f629e6
Packit Service f629e6
  AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
Packit Service f629e6
    gt_cv_int_divbyzero_sigfpe,
Packit Service f629e6
    [
Packit Service f629e6
      gt_cv_int_divbyzero_sigfpe=
Packit Service f629e6
changequote(,)dnl
Packit Service f629e6
      case "$host_os" in
Packit Service f629e6
        macos* | darwin[6-9]* | darwin[1-9][0-9]*)
Packit Service f629e6
          # On Mac OS X 10.2 or newer, just assume the same as when cross-
Packit Service f629e6
          # compiling. If we were to perform the real test, 1 Crash Report
Packit Service f629e6
          # dialog window would pop up.
Packit Service f629e6
          case "$host_cpu" in
Packit Service f629e6
            i[34567]86 | x86_64)
Packit Service f629e6
              gt_cv_int_divbyzero_sigfpe="guessing yes" ;;
Packit Service f629e6
          esac
Packit Service f629e6
          ;;
Packit Service f629e6
      esac
Packit Service f629e6
changequote([,])dnl
Packit Service f629e6
      if test -z "$gt_cv_int_divbyzero_sigfpe"; then
Packit Service f629e6
        AC_RUN_IFELSE(
Packit Service f629e6
          [AC_LANG_SOURCE([[
Packit Service f629e6
#include <stdlib.h>
Packit Service f629e6
#include <signal.h>
Packit Service f629e6
Packit Service f629e6
static void
Packit Service f629e6
sigfpe_handler (int sig)
Packit Service f629e6
{
Packit Service f629e6
  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
Packit Service f629e6
  exit (sig != SIGFPE);
Packit Service f629e6
}
Packit Service f629e6
Packit Service f629e6
int x = 1;
Packit Service f629e6
int y = 0;
Packit Service f629e6
int z;
Packit Service f629e6
int nan;
Packit Service f629e6
Packit Service f629e6
int main ()
Packit Service f629e6
{
Packit Service f629e6
  signal (SIGFPE, sigfpe_handler);
Packit Service f629e6
/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
Packit Service f629e6
#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
Packit Service f629e6
  signal (SIGTRAP, sigfpe_handler);
Packit Service f629e6
#endif
Packit Service f629e6
/* Linux/SPARC yields signal SIGILL.  */
Packit Service f629e6
#if defined (__sparc__) && defined (__linux__)
Packit Service f629e6
  signal (SIGILL, sigfpe_handler);
Packit Service f629e6
#endif
Packit Service f629e6
Packit Service f629e6
  z = x / y;
Packit Service f629e6
  nan = y / y;
Packit Service f629e6
  exit (2);
Packit Service f629e6
}
Packit Service f629e6
]])],
Packit Service f629e6
          [gt_cv_int_divbyzero_sigfpe=yes],
Packit Service f629e6
          [gt_cv_int_divbyzero_sigfpe=no],
Packit Service f629e6
          [
Packit Service f629e6
            # Guess based on the CPU.
Packit Service f629e6
changequote(,)dnl
Packit Service f629e6
            case "$host_cpu" in
Packit Service f629e6
              alpha* | i[34567]86 | x86_64 | m68k | s390*)
Packit Service f629e6
                gt_cv_int_divbyzero_sigfpe="guessing yes";;
Packit Service f629e6
              *)
Packit Service f629e6
                gt_cv_int_divbyzero_sigfpe="guessing no";;
Packit Service f629e6
            esac
Packit Service f629e6
changequote([,])dnl
Packit Service f629e6
          ])
Packit Service f629e6
      fi
Packit Service f629e6
    ])
Packit Service f629e6
  case "$gt_cv_int_divbyzero_sigfpe" in
Packit Service f629e6
    *yes) value=1;;
Packit Service f629e6
    *) value=0;;
Packit Service f629e6
  esac
Packit Service f629e6
  AC_DEFINE_UNQUOTED([INTDIV0_RAISES_SIGFPE], [$value],
Packit Service f629e6
    [Define if integer division by zero raises signal SIGFPE.])
Packit Service f629e6
])