This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.17-456-gbdef0be


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  bdef0be784c57c6e01a64933a167f29b2bd0cd6e (commit)
       via  5aa4a1a1fd742479818a668d42d91ca9ec4a6318 (commit)
      from  98c48fe5cc4317123a168490a8fb37540e23f104 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bdef0be784c57c6e01a64933a167f29b2bd0cd6e

commit bdef0be784c57c6e01a64933a167f29b2bd0cd6e
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Thu Mar 21 16:07:48 2013 +0100

    libm-test: Properly wrap blocks consisting of several statements.

diff --git a/ChangeLog b/ChangeLog
index 0e6798b..dadbd21 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2013-03-21  Thomas Schwinge  <thomas@codesourcery.com>
 
+	* math/gen-libm-test.pl (parse_args, special_functions): Properly
+	wrap blocks consisting of several statements.
+
 	* sysdeps/generic/math-tests.h: New file.
 	* sysdeps/i386/fpu/math-tests.h: Likewise.
 	* math/test-snan.c: Include it.
diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl
index 01e0fc2..f50f1d9 100755
--- a/math/gen-libm-test.pl
+++ b/math/gen-libm-test.pl
@@ -203,22 +203,24 @@ sub special_functions {
   unless ($args[0] =~ /sincos/) {
     die ("Don't know how to handle $args[0] extra.");
   }
-  print $file "  FUNC (sincos) ($args[1], &sin_res, &cos_res);\n";
+  print $file "  {\n";
+  print $file "    FUNC (sincos) ($args[1], &sin_res, &cos_res);\n";
 
   $str = 'sincos (' . &beautify ($args[1]) . ', &sin_res, &cos_res)';
   # handle sin
   $test = $str . ' puts ' . &beautify ($args[2]) . ' in sin_res';
 
-  $cline = "  check_float (\"$test\", sin_res, $args[2]";
+  $cline = "    check_float (\"$test\", sin_res, $args[2]";
   $cline .= &new_test ($test, $args[4]);
   print $file $cline;
 
   # handle cos
   $test = $str . ' puts ' . &beautify ($args[3]) . ' in cos_res';
-  $cline = "  check_float (\"$test\", cos_res, $args[3]";
+  $cline = "    check_float (\"$test\", cos_res, $args[3]";
   # only tests once for exception
   $cline .= &new_test ($test, undef);
   print $file $cline;
+  print $file "  }\n";
 }
 
 # Parse the arguments to TEST_x_y
@@ -398,11 +400,15 @@ sub parse_args {
     }
   }
 
-  print $file $pre if (defined $pre);
-
-  print $file "  $cline";
-
-  print $file $post if (defined $post);
+  if (defined $pre or defined $post) {
+    print $file "  {\n";
+    print $file "  $pre" if (defined $pre);
+    print $file "    $cline";
+    print $file "  $post" if (defined $post);
+    print $file "  }\n";
+  } else {
+    print $file "  $cline";
+  }
 }
 
 # Generate libm-test.c

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5aa4a1a1fd742479818a668d42d91ca9ec4a6318

commit 5aa4a1a1fd742479818a668d42d91ca9ec4a6318
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Tue Mar 19 10:16:49 2013 +0100

    On 32-bit x86, disable certain tests involving sNaN values.
    
    Follow-up to commit 495ded2c8c1eb8c0ac4b54add2dd397852e19cba.

diff --git a/ChangeLog b/ChangeLog
index dffd409..0e6798b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-03-21  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* sysdeps/generic/math-tests.h: New file.
+	* sysdeps/i386/fpu/math-tests.h: Likewise.
+	* math/test-snan.c: Include it.
+	(TEST_FUNC): Use SNAN_TESTS to short-circuit certain tests.
+
 2013-03-21  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #15285]
diff --git a/math/test-snan.c b/math/test-snan.c
index 83657ee..f185cbb 100644
--- a/math/test-snan.c
+++ b/math/test-snan.c
@@ -29,6 +29,9 @@
 #include <setjmp.h>
 #include <errno.h>
 
+#include <math-tests.h>
+
+
 int dest_offset;
 char *dest_address;
 double	value = 123.456;
@@ -139,7 +142,8 @@ NAME (void)								      \
       printf (#FLOAT " isnan (sNaN) raised SIGFPE\n");			      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isnan (sNaN)", isnan (sNaN_var));			      \
+      check (#FLOAT " isnan (sNaN)",					      \
+	     SNAN_TESTS (FLOAT) ? isnan (sNaN_var) : 1);		      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -149,7 +153,8 @@ NAME (void)								      \
       printf (#FLOAT " isnan (-sNaN) raised SIGFPE\n");			      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isnan (-sNaN)", isnan (minus_sNaN_var));		      \
+      check (#FLOAT " isnan (-sNaN)",					      \
+	     SNAN_TESTS (FLOAT) ? isnan (minus_sNaN_var) : 1);		      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -179,7 +184,8 @@ NAME (void)								      \
       printf (#FLOAT " isinf (sNaN) raised SIGFPE\n");			      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isinf (sNaN)", !isinf (sNaN_var));		      \
+      check (#FLOAT " isinf (sNaN)",					      \
+	     SNAN_TESTS (FLOAT) ? !isinf (sNaN_var) : 1);		      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -189,7 +195,8 @@ NAME (void)								      \
       printf (#FLOAT " isinf (-sNaN) raised SIGFPE\n");			      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isinf (-sNaN)", !isinf (minus_sNaN_var));		      \
+      check (#FLOAT " isinf (-sNaN)",					      \
+	     SNAN_TESTS (FLOAT) ? !isinf (minus_sNaN_var) : 1);		      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -219,7 +226,8 @@ NAME (void)								      \
       printf (#FLOAT " isfinite (sNaN) raised SIGFPE\n");		      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isfinite (sNaN)", !isfinite (sNaN_var));		      \
+      check (#FLOAT " isfinite (sNaN)",					      \
+	     SNAN_TESTS (FLOAT) ? !isfinite (sNaN_var) : 1);		      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -229,7 +237,8 @@ NAME (void)								      \
       printf (#FLOAT " isfinite (-sNaN) raised SIGFPE\n");		      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isfinite (-sNaN)", !isfinite (minus_sNaN_var));	      \
+      check (#FLOAT " isfinite (-sNaN)",				      \
+	     SNAN_TESTS (FLOAT) ? !isfinite (minus_sNaN_var) : 1);	      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -259,7 +268,8 @@ NAME (void)								      \
       printf (#FLOAT " isnormal (sNaN) isnormal SIGFPE\n");		      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isnormal (sNaN)", !isnormal (sNaN_var));		      \
+      check (#FLOAT " isnormal (sNaN)",					      \
+	     SNAN_TESTS (FLOAT) ? !isnormal (sNaN_var) : 1);		      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -269,7 +279,8 @@ NAME (void)								      \
       printf (#FLOAT " isnormal (-sNaN) raised SIGFPE\n");		      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " isnormal (-sNaN)", !isnormal (minus_sNaN_var));	      \
+      check (#FLOAT " isnormal (-sNaN)",				      \
+	     SNAN_TESTS (FLOAT) ? !isnormal (minus_sNaN_var) : 1);	      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -299,7 +310,8 @@ NAME (void)								      \
       printf (#FLOAT " fpclassify (sNaN) isnormal SIGFPE\n");		      \
       errors++;								      \
     } else {								      \
-      check (#FLOAT " fpclassify (sNaN)", fpclassify (sNaN_var) == FP_NAN);   \
+      check (#FLOAT " fpclassify (sNaN)",				      \
+	     SNAN_TESTS (FLOAT) ? fpclassify (sNaN_var) == FP_NAN : 1);	      \
     }									      \
 									      \
   feclearexcept(FE_ALL_EXCEPT);						      \
@@ -310,7 +322,7 @@ NAME (void)								      \
       errors++;								      \
     } else {								      \
       check (#FLOAT " fpclassify (-sNaN)",				      \
-	     fpclassify (minus_sNaN_var) == FP_NAN);			      \
+	     SNAN_TESTS (FLOAT) ? fpclassify (minus_sNaN_var) == FP_NAN : 1); \
     }									      \
 									      \
   fesetenv(&saved_fenv); /* restore saved fenv */			      \
diff --git a/sysdeps/generic/math-tests.h b/sysdeps/generic/math-tests.h
new file mode 100644
index 0000000..76f738e
--- /dev/null
+++ b/sysdeps/generic/math-tests.h
@@ -0,0 +1,36 @@
+/* Configuration for math tests.  Generic version.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* Indicate whether to run tests involving sNaN values for the float, double,
+   and long double C data types, respectively.  All are run unless
+   overridden.  */
+#ifndef SNAN_TESTS_float
+# define SNAN_TESTS_float	1
+#endif
+#ifndef SNAN_TESTS_double
+# define SNAN_TESTS_double	1
+#endif
+#ifndef SNAN_TESTS_long_double
+# define SNAN_TESTS_long_double	1
+#endif
+
+/* Return nonzero value if to run tests involving sNaN values for X.  */
+#define SNAN_TESTS(x)							\
+  (sizeof (x) == sizeof (float) ? SNAN_TESTS_float			\
+   : sizeof (x) == sizeof (double) ? SNAN_TESTS_double			\
+   : SNAN_TESTS_long_double)
diff --git a/sysdeps/i386/fpu/math-tests.h b/sysdeps/i386/fpu/math-tests.h
new file mode 100644
index 0000000..00c5f6c
--- /dev/null
+++ b/sysdeps/i386/fpu/math-tests.h
@@ -0,0 +1,26 @@
+/* Configuration for math tests.  32-bit x86 version.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* On 32-bit x86, versions of GCC up to at least 4.8 are happy to use FPU load
+   instructions for sNaN values, and loading a float or double sNaN value will
+   already raise an INVALID exception as well as turn the sNaN into a qNaN,
+   rendering certain tests infeasible in this scenario.  */
+#define SNAN_TESTS_float	0
+#define SNAN_TESTS_double	0
+
+#include_next <math-tests.h>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   10 +++++
 math/gen-libm-test.pl                              |   22 +++++++----
 math/test-snan.c                                   |   32 ++++++++++-----
 .../sparc32/fpu/s_fdim.S => generic/math-tests.h}  |   41 +++++++++-----------
 .../i386/fpu/math-tests.h                          |   22 ++++-------
 5 files changed, 72 insertions(+), 55 deletions(-)
 copy sysdeps/{sparc/sparc32/fpu/s_fdim.S => generic/math-tests.h} (55%)
 copy ports/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c => sysdeps/i386/fpu/math-tests.h (64%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]