anastasis-gtk

Demonstrator GUI for Anastasis
Log | Files | Refs | README | LICENSE

intdiv0.m4 (2410B)


      1 # intdiv0.m4 serial 6 (gettext-0.18.2)
      2 dnl Copyright (C) 2002, 2007-2008, 2010-2014 Free Software Foundation, Inc.
      3 dnl This file is free software; the Free Software Foundation
      4 dnl gives unlimited permission to copy and/or distribute it,
      5 dnl with or without modifications, as long as this notice is preserved.
      6 
      7 dnl From Bruno Haible.
      8 
      9 AC_DEFUN([gt_INTDIV0],
     10 [
     11   AC_REQUIRE([AC_PROG_CC])dnl
     12   AC_REQUIRE([AC_CANONICAL_HOST])dnl
     13 
     14   AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
     15     gt_cv_int_divbyzero_sigfpe,
     16     [
     17       gt_cv_int_divbyzero_sigfpe=
     18 changequote(,)dnl
     19       case "$host_os" in
     20         macos* | darwin[6-9]* | darwin[1-9][0-9]*)
     21           # On Mac OS X 10.2 or newer, just assume the same as when cross-
     22           # compiling. If we were to perform the real test, 1 Crash Report
     23           # dialog window would pop up.
     24           case "$host_cpu" in
     25             i[34567]86 | x86_64)
     26               gt_cv_int_divbyzero_sigfpe="guessing yes" ;;
     27           esac
     28           ;;
     29       esac
     30 changequote([,])dnl
     31       if test -z "$gt_cv_int_divbyzero_sigfpe"; then
     32         AC_RUN_IFELSE(
     33           [AC_LANG_SOURCE([[
     34 #include <stdlib.h>
     35 #include <signal.h>
     36 
     37 static void
     38 sigfpe_handler (int sig)
     39 {
     40   /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
     41   exit (sig != SIGFPE);
     42 }
     43 
     44 int x = 1;
     45 int y = 0;
     46 int z;
     47 int nan;
     48 
     49 int main ()
     50 {
     51   signal (SIGFPE, sigfpe_handler);
     52 /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
     53 #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
     54   signal (SIGTRAP, sigfpe_handler);
     55 #endif
     56 /* Linux/SPARC yields signal SIGILL.  */
     57 #if defined (__sparc__) && defined (__linux__)
     58   signal (SIGILL, sigfpe_handler);
     59 #endif
     60 
     61   z = x / y;
     62   nan = y / y;
     63   exit (2);
     64 }
     65 ]])],
     66           [gt_cv_int_divbyzero_sigfpe=yes],
     67           [gt_cv_int_divbyzero_sigfpe=no],
     68           [
     69             # Guess based on the CPU.
     70 changequote(,)dnl
     71             case "$host_cpu" in
     72               alpha* | i[34567]86 | x86_64 | m68k | s390*)
     73                 gt_cv_int_divbyzero_sigfpe="guessing yes";;
     74               *)
     75                 gt_cv_int_divbyzero_sigfpe="guessing no";;
     76             esac
     77 changequote([,])dnl
     78           ])
     79       fi
     80     ])
     81   case "$gt_cv_int_divbyzero_sigfpe" in
     82     *yes) value=1;;
     83     *) value=0;;
     84   esac
     85   AC_DEFINE_UNQUOTED([INTDIV0_RAISES_SIGFPE], [$value],
     86     [Define if integer division by zero raises signal SIGFPE.])
     87 ])