summaryrefslogtreecommitdiff
path: root/m4/roundf.m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2011-06-19 12:48:10 +0200
committerBruno Haible <bruno@clisp.org>2011-06-19 12:48:10 +0200
commite73e42a61d1dbf1a80ba2fd95fef2aa98de6f48b (patch)
treefaa4b3c988c072edd8de2fd0bbd54b4a18d181c3 /m4/roundf.m4
parentb68d5ea20723040e3763cc9c3a8e127e731f22ac (diff)
downloadgnulib-e73e42a61d1dbf1a80ba2fd95fef2aa98de6f48b.tar.gz
floor*-ieee, ceil*-ieee, trunc*-ieee, round*-ieee: More robust checks.
* m4/floorf.m4 (gl_FUNC_FLOORF): In the test whether the function is IEEE compliant, avoid compiler optimizations. * m4/floor.m4 (gl_FUNC_FLOOR): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceil.m4 (gl_FUNC_CEIL): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
Diffstat (limited to 'm4/roundf.m4')
-rw-r--r--m4/roundf.m48
1 files changed, 5 insertions, 3 deletions
diff --git a/m4/roundf.m4 b/m4/roundf.m4
index 0ff964608d..83dffd1a8f 100644
--- a/m4/roundf.m4
+++ b/m4/roundf.m4
@@ -1,4 +1,4 @@
-# roundf.m4 serial 11
+# roundf.m4 serial 12
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -66,10 +66,12 @@ int main()
#include <math.h>
]gl_FLOAT_MINUS_ZERO_CODE[
]gl_FLOAT_SIGNBIT_CODE[
-int main()
+static float dummy (float f) { return 0; }
+int main (int argc, char *argv[])
{
+ float (*my_roundf) (float) = argc ? roundf : dummy;
/* Test whether roundf (-0.0f) is -0.0f. */
- if (signbitf (minus_zerof) && !signbitf (roundf (minus_zerof)))
+ if (signbitf (minus_zerof) && !signbitf (my_roundf (minus_zerof)))
return 1;
return 0;
}