mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # 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.])
 | |
| ])
 |