changeset 11002:df76e2fc2a8e

tests: IRIX 6.2 cc can't compile -0.0 into .data * tests/test-ceill.c (minus_zero): Compute -0.0L at runtime, rather than at compile-time. * tests/test-floorl.c (minus_zero): Likewise. * tests/test-frexpl.c (minus_zero): Likewise. * tests/test-isnan.c (minus_zerol): Likewise. * tests/test-isnanl.h (minus_zero): Likewise. * tests/test-ldexpl.c (minus_zero): Likewise. * tests/test-roundl.c (minus_zero): Likewise. * tests/test-signbit.c (minus_zerol): Likewise. * tests/test-snprintf-posix.h (minus_zerol): Likewise. * tests/test-sprintf-posix.h (minus_zerol): Likewise. * tests/test-truncl.c (minus_zero): Likewise. * tests/test-vasnprintf-posix.c (minus_zerol): Likewise. * tests/test-vasprintf-posix.c (minus_zerol): Likewise. Reported by Tom G. Christensen and Nelson H. F. Beebe. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Mon, 12 Jan 2009 06:52:18 -0700
parents 15b2bb14250e
children 17859659573f
files ChangeLog tests/test-ceill.c tests/test-floorl.c tests/test-frexpl.c tests/test-isnan.c tests/test-isnanl.h tests/test-ldexpl.c tests/test-roundl.c tests/test-signbit.c tests/test-snprintf-posix.h tests/test-sprintf-posix.h tests/test-truncl.c tests/test-vasnprintf-posix.c tests/test-vasprintf-posix.c
diffstat 14 files changed, 124 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2009-01-12  Eric Blake  <ebb9@byu.net>
+
+	tests: IRIX 6.2 cc can't compile -0.0 into .data
+	* tests/test-ceill.c (minus_zero): Compute -0.0L at runtime,
+	rather than at compile-time.
+	* tests/test-floorl.c (minus_zero): Likewise.
+	* tests/test-frexpl.c (minus_zero): Likewise.
+	* tests/test-isnan.c (minus_zerol): Likewise.
+	* tests/test-isnanl.h (minus_zero): Likewise.
+	* tests/test-ldexpl.c (minus_zero): Likewise.
+	* tests/test-roundl.c (minus_zero): Likewise.
+	* tests/test-signbit.c (minus_zerol): Likewise.
+	* tests/test-snprintf-posix.h (minus_zerol): Likewise.
+	* tests/test-sprintf-posix.h (minus_zerol): Likewise.
+	* tests/test-truncl.c (minus_zero): Likewise.
+	* tests/test-vasnprintf-posix.c (minus_zerol): Likewise.
+	* tests/test-vasprintf-posix.c (minus_zerol): Likewise.
+	Reported by Tom G. Christensen and Nelson H. F. Beebe.
+
 2009-01-09  Paolo Bonzini  <bonzini@gnu.org>
 
 	regex: fix glibc bug 9697
--- a/tests/test-ceill.c
+++ b/tests/test-ceill.c
@@ -1,5 +1,5 @@
 /* Test of rounding towards positive infinity.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -41,10 +41,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zero instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zero = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zero (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
 #else
 long double minus_zero = -0.0L;
 #endif
--- a/tests/test-floorl.c
+++ b/tests/test-floorl.c
@@ -1,5 +1,5 @@
 /* Test of rounding towards negative infinity.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -41,10 +41,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zero instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zero = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zero (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
 #else
 long double minus_zero = -0.0L;
 #endif
--- a/tests/test-frexpl.c
+++ b/tests/test-frexpl.c
@@ -1,5 +1,5 @@
 /* Test of splitting a 'long double' into fraction and mantissa.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -59,10 +59,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zero instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zero = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zero (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
 #else
 long double minus_zero = -0.0L;
 #endif
--- a/tests/test-isnan.c
+++ b/tests/test-isnan.c
@@ -1,5 +1,5 @@
 /* Test of isnand() substitute.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -50,10 +50,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zerol instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zerol = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
 #else
 long double minus_zerol = -0.0L;
 #endif
--- a/tests/test-isnanl.h
+++ b/tests/test-isnanl.h
@@ -1,5 +1,5 @@
 /* Test of isnanl() substitute.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -35,10 +35,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zero instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zero = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zero (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
 #else
 long double minus_zero = -0.0L;
 #endif
--- a/tests/test-ldexpl.c
+++ b/tests/test-ldexpl.c
@@ -1,5 +1,5 @@
 /* Test of multiplying a 'long double' by a power of 2.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -41,10 +41,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zero instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zero = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zero (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
 #else
 long double minus_zero = -0.0L;
 #endif
--- a/tests/test-roundl.c
+++ b/tests/test-roundl.c
@@ -1,9 +1,9 @@
 /* Test of rounding to nearest, breaking ties away from zero.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -43,10 +43,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zero instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zero = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zero (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
 #else
 long double minus_zero = -0.0L;
 #endif
--- a/tests/test-signbit.c
+++ b/tests/test-signbit.c
@@ -1,5 +1,5 @@
 /* Test of signbit() substitute.
-   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -49,10 +49,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zerol instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zerol = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
 #else
 long double minus_zerol = -0.0L;
 #endif
--- a/tests/test-snprintf-posix.h
+++ b/tests/test-snprintf-posix.h
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vsnprintf() and snprintf() functions.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -33,10 +33,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zerol instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zerol = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
 #else
 long double minus_zerol = -0.0L;
 #endif
--- a/tests/test-sprintf-posix.h
+++ b/tests/test-sprintf-posix.h
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vsprintf() and sprintf() functions.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -33,10 +33,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zerol instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zerol = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
 #else
 long double minus_zerol = -0.0L;
 #endif
--- a/tests/test-truncl.c
+++ b/tests/test-truncl.c
@@ -1,5 +1,5 @@
 /* Test of rounding towards zero.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -41,10 +41,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zero instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zero = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zero (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
 #else
 long double minus_zero = -0.0L;
 #endif
--- a/tests/test-vasnprintf-posix.c
+++ b/tests/test-vasnprintf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vasnprintf() and asnprintf() functions.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -58,10 +58,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zerol instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zerol = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
 #else
 long double minus_zerol = -0.0L;
 #endif
--- a/tests/test-vasprintf-posix.c
+++ b/tests/test-vasprintf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vasprintf() and asprintf() functions.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -57,10 +57,16 @@
 
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use minus_zerol instead.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
    Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
    platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
 #if defined __hpux || defined __sgi
-long double minus_zerol = -LDBL_MIN * LDBL_MIN;
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
 #else
 long double minus_zerol = -0.0L;
 #endif