File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / confuse / m4 / intdiv0.m4
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Jan 24 14:48:55 2017 UTC (7 years, 5 months ago) by misho
Branches: confuse, MAIN
CVS tags: v2_7, HEAD
confuse 2.7

    1: # intdiv0.m4 serial 1 (gettext-0.11.3)
    2: dnl Copyright (C) 2002 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:       AC_TRY_RUN([
   18: #include <stdlib.h>
   19: #include <signal.h>
   20: 
   21: static void
   22: #ifdef __cplusplus
   23: sigfpe_handler (int sig)
   24: #else
   25: sigfpe_handler (sig) int sig;
   26: #endif
   27: {
   28:   /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
   29:   exit (sig != SIGFPE);
   30: }
   31: 
   32: int x = 1;
   33: int y = 0;
   34: int z;
   35: int nan;
   36: 
   37: int main ()
   38: {
   39:   signal (SIGFPE, sigfpe_handler);
   40: /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
   41: #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
   42:   signal (SIGTRAP, sigfpe_handler);
   43: #endif
   44: /* Linux/SPARC yields signal SIGILL.  */
   45: #if defined (__sparc__) && defined (__linux__)
   46:   signal (SIGILL, sigfpe_handler);
   47: #endif
   48: 
   49:   z = x / y;
   50:   nan = y / y;
   51:   exit (1);
   52: }
   53: ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
   54:         [
   55:           # Guess based on the CPU.
   56:           case "$host_cpu" in
   57:             alpha* | i[34567]86 | m68k | s390*)
   58:               gt_cv_int_divbyzero_sigfpe="guessing yes";;
   59:             *)
   60:               gt_cv_int_divbyzero_sigfpe="guessing no";;
   61:           esac
   62:         ])
   63:     ])
   64:   case "$gt_cv_int_divbyzero_sigfpe" in
   65:     *yes) value=1;;
   66:     *) value=0;;
   67:   esac
   68:   AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
   69:     [Define if integer division by zero raises signal SIGFPE.])
   70: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>