Update Gnulib to the latest git version
[deliverable/binutils-gdb.git] / gnulib / import / m4 / isnand.m4
CommitLineData
88b48903 1# isnand.m4 serial 11
c0c3707f 2dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
88b48903
WN
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7dnl Check how to get or define isnand().
8
9AC_DEFUN([gl_FUNC_ISNAND],
10[
11 AC_REQUIRE([gl_MATH_H_DEFAULTS])
12 ISNAND_LIBM=
13 gl_HAVE_ISNAND_NO_LIBM
14 if test $gl_cv_func_isnand_no_libm = no; then
15 gl_HAVE_ISNAND_IN_LIBM
16 if test $gl_cv_func_isnand_in_libm = yes; then
17 ISNAND_LIBM=-lm
18 fi
19 fi
20 dnl The variable gl_func_isnand set here is used by isnan.m4.
21 if test $gl_cv_func_isnand_no_libm = yes \
22 || test $gl_cv_func_isnand_in_libm = yes; then
23 gl_func_isnand=yes
24 else
25 gl_func_isnand=no
26 HAVE_ISNAND=0
27 fi
28 AC_SUBST([ISNAND_LIBM])
29])
30
31dnl Check how to get or define isnand() without linking with libm.
32
33AC_DEFUN([gl_FUNC_ISNAND_NO_LIBM],
34[
35 gl_HAVE_ISNAND_NO_LIBM
36 gl_func_isnand_no_libm=$gl_cv_func_isnand_no_libm
37 if test $gl_cv_func_isnand_no_libm = yes; then
38 AC_DEFINE([HAVE_ISNAND_IN_LIBC], [1],
39 [Define if the isnan(double) function is available in libc.])
40 fi
41])
42
43dnl Prerequisites of replacement isnand definition. It does not need -lm.
44AC_DEFUN([gl_PREREQ_ISNAND],
45[
46 AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
47])
48
49dnl Test whether isnand() can be used with libm.
50
51AC_DEFUN([gl_HAVE_ISNAND_IN_LIBM],
52[
53 AC_CACHE_CHECK([whether isnan(double) can be used with libm],
54 [gl_cv_func_isnand_in_libm],
55 [
56 save_LIBS="$LIBS"
57 LIBS="$LIBS -lm"
58 AC_LINK_IFELSE(
59 [AC_LANG_PROGRAM(
60 [[#include <math.h>
61 #if __GNUC__ >= 4
62 # undef isnand
63 # define isnand(x) __builtin_isnan ((double)(x))
64 #elif defined isnan
65 # undef isnand
66 # define isnand(x) isnan ((double)(x))
67 #endif
68 double x;]],
69 [[return isnand (x);]])],
70 [gl_cv_func_isnand_in_libm=yes],
71 [gl_cv_func_isnand_in_libm=no])
72 LIBS="$save_LIBS"
73 ])
74])
75
76AC_DEFUN([gl_HAVE_ISNAND_NO_LIBM],
77[
78 AC_CACHE_CHECK([whether isnan(double) can be used without linking with libm],
79 [gl_cv_func_isnand_no_libm],
80 [
81 AC_LINK_IFELSE(
82 [AC_LANG_PROGRAM(
83 [[#include <math.h>
84 #if __GNUC__ >= 4
85 # undef isnand
86 # define isnand(x) __builtin_isnan ((double)(x))
87 #else
88 # undef isnand
89 # define isnand(x) isnan ((double)(x))
90 #endif
91 double x;]],
92 [[return isnand (x);]])],
93 [gl_cv_func_isnand_no_libm=yes],
94 [gl_cv_func_isnand_no_libm=no])
95 ])
96])
This page took 0.525661 seconds and 4 git commands to generate.