]> sourceware.org Git - glibc.git/commitdiff
Remove libm-test support for TEST_* inside functions.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 16 May 2013 19:09:03 +0000 (19:09 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 16 May 2013 19:09:03 +0000 (19:09 +0000)
ChangeLog
math/gen-libm-test.pl
math/libm-test.inc

index 1fe59a3d5e8ae8ceefc0865088c36a325b4e71c6..b395cb688e63dc76f7143c0393c550949e283c42 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2013-05-16  Joseph Myers  <joseph@codesourcery.com>
+
+       * math/gen-libm-test.pl (adjust_arg): Remove function.
+       (special_function): Remove argument $in_func.  Only handle
+       generating output for tables of tests, not inside functions.
+       (parse_args): Likewise.
+       (generate_testfile): Remove variable $in_func.  Update call to
+       parse_args.
+       * math/libm-test.inc (PLUS_ZERO_INIT): Rename macro to plus_zero.
+       (MINUS_ZERO_INIT): Rename macro to minus_zero.
+       (PLUS_INFTY_INIT): Rename macro to plus_infty.
+       (MINUS_INFTY_INIT): Rename macro to minus_infty.
+       (QNAN_VALUE_INIT): Rename macro to qnan_value.
+       (MAX_VALUE_INIT): Rename macro to max_value.
+       (MIN_VALUE_INIT): Rename macro to min_value.
+       (MIN_SUBNORM_VALUE_INIT): Rename macro to min_subnorm_value.
+       (plus_zero): Remove variable.
+       (minus_zero): Likewise.
+       (plus_infty): Likewise.
+       (minus_infty): Likewise.
+       (qnan_value): Likewise.
+       (max_value): Likewise.
+       (min_value): Likewise.
+       (min_subnorm_value): Likewise.
+
 2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
 
        * crypt/sha512-block.c: Add missing #include <stdint.h> due to
index f26a254d2d6ee44f64c4b3cc6558258d3a5654a5..217d74d2d268da486ae8cc56eaa2009e7365ce4f 100755 (executable)
@@ -185,21 +185,10 @@ sub new_test {
   return $rest;
 }
 
-# Adjust an argument or expected value for use in a constant
-# initializer.
-sub adjust_arg {
-  my ($arg, $in_func) = @_;
-  if (!$in_func) {
-    $arg =~ s/(plus_zero|minus_zero|plus_infty|minus_infty|qnan_value
-              |max_value|min_value|min_subnorm_value)/\U$1\E_INIT/xg;
-  }
-  return $arg;
-}
-
 # Treat some functions especially.
 # Currently only sincos needs extra treatment.
 sub special_functions {
-  my ($file, $in_func, $args) = @_;
+  my ($file, $args) = @_;
   my (@args, $str, $test, $cline);
 
   @args = split /,\s*/, $args;
@@ -207,43 +196,33 @@ sub special_functions {
   unless ($args[0] =~ /sincos/) {
     die ("Don't know how to handle $args[0] extra.");
   }
-  if ($in_func) {
-    $cline = "  RUN_TEST_sincos (" . adjust_arg ($args[1], $in_func);
-  } else {
-    $cline = "    { " . adjust_arg ($args[1], $in_func);
-  }
+  $cline = "    { $args[1]";
 
   $str = 'sincos (' . &beautify ($args[1]) . ', &sin_res, &cos_res)';
   # handle sin
   $test = $str . ' puts ' . &beautify ($args[2]) . ' in sin_res';
 
-  my ($sin_res_var) = ($in_func ? ", sin_res" : "");
-  $cline .= ", \"$test\"$sin_res_var, " . adjust_arg ($args[2], $in_func);
+  $cline .= ", \"$test\", $args[2]";
   $cline .= &new_test ($test, $args[4], 0);
 
   # handle cos
   $test = $str . ' puts ' . &beautify ($args[3]) . ' in cos_res';
-  my ($cos_res_var) = ($in_func ? ", cos_res" : "");
-  $cline .= ", \"$test\"$cos_res_var, " . adjust_arg ($args[3], $in_func);
+  $cline .= ", \"$test\", $args[3]";
   $cline .= &new_test ($test, $args[4], 1);
-  if ($in_func) {
-    $cline .= ");\n";
-  } else {
-    $cline .= " },\n";
-  }
+  $cline .= " },\n";
   print $file $cline;
 }
 
 # Parse the arguments to TEST_x_y
 sub parse_args {
-  my ($file, $descr, $fct, $in_func, $args) = @_;
+  my ($file, $descr, $fct, $args) = @_;
   my (@args, $str, $descr_args, $descr_res, @descr);
   my ($current_arg, $cline, $i);
   my (@special);
   my ($extra_var, $call);
 
   if ($descr eq 'extra') {
-    &special_functions ($file, $in_func, $args);
+    &special_functions ($file, $args);
     return;
   }
   ($descr_args, $descr_res) = split /_/,$descr, 2;
@@ -318,29 +297,12 @@ sub parse_args {
   # Reset some variables to start again
   $current_arg = 1;
   $extra_var = 0;
-  if ($in_func) {
-    $cline = "RUN_TEST_$descr";
-  } else {
-    $cline = "{ ";
-  }
-  # Special handling for some macros:
-  if ($in_func && $args[0] =~ /fpclassify|isnormal|isfinite|isinf|isnan
-      |issignaling|signbit|isgreater|isgreaterequal|isless|islessequal
-      |islessgreater|isunordered/x) {
-    $cline = "${cline}_tg";
-  }
-  if ($in_func) {
-    $cline .= " (";
-  }
-  $cline .= "\"$str\"";
-  if ($in_func) {
-    $cline .= ", $args[0]";
-  }
+  $cline = "{ \"$str\"";
   @descr = split //,$descr_args;
   for ($i=0; $i <= $#descr; $i++) {
     # FLOAT, int, long int, long long int
     if ($descr[$i] =~ /f|i|l|L/) {
-      $cline .= ", " . adjust_arg ($args[$current_arg], $in_func);
+      $cline .= ", $args[$current_arg]";
       $current_arg++;
       next;
     }
@@ -350,8 +312,7 @@ sub parse_args {
     }
     # complex
     if ($descr[$i] eq 'c') {
-      $cline .= ", " . adjust_arg ($args[$current_arg], $in_func);
-      $cline .= ", " . adjust_arg ($args[$current_arg+1], $in_func);
+      $cline .= ", $args[$current_arg], $args[$current_arg+1]";
       $current_arg += 2;
       next;
     }
@@ -361,11 +322,10 @@ sub parse_args {
   @descr = split //,$descr_res;
   foreach (@descr) {
     if ($_ =~ /b|f|i|l|L/ ) {
-      $cline .= adjust_arg ($args[$current_arg], $in_func);
+      $cline .= $args[$current_arg];
       $current_arg++;
     } elsif ($_ eq 'c') {
-      $cline .= adjust_arg ($args[$current_arg], $in_func);
-      $cline .= ", " . adjust_arg ($args[$current_arg+1], $in_func);
+      $cline .= "$args[$current_arg], $args[$current_arg+1]";
       $current_arg += 2;
     } elsif ($_ eq '1') {
       push @special, $args[$current_arg];
@@ -381,12 +341,11 @@ sub parse_args {
       my ($extra_expected) = $special[0];
       my ($run_extra) = ($extra_expected ne "IGNORE" ? 1 : 0);
       my ($str) = "$call sets x to $extra_expected";
-      my ($out_var) = ($in_func ? ", x" : "");
       if (!$run_extra) {
        $str = "";
        $extra_expected = "0";
       }
-      $cline .= ", \"$str\"$out_var, 123456789, $run_extra, $extra_expected";
+      $cline .= ", \"$str\", 123456789, $run_extra, $extra_expected";
       if ($run_extra) {
        $cline .= &new_test ($str, undef, 0);
       } else {
@@ -398,12 +357,11 @@ sub parse_args {
       my ($extra_expected) = $special[0];
       my ($run_extra) = ($extra_expected ne "IGNORE" ? 1 : 0);
       my ($str) = "$call sets signgam to $extra_expected";
-      my ($out_var) = ($in_func ? ", signgam" : "");
       if (!$run_extra) {
        $str = "";
        $extra_expected = "0";
       }
-      $cline .= ", \"$str\"$out_var, 0, $run_extra, $extra_expected";
+      $cline .= ", \"$str\", 0, $run_extra, $extra_expected";
       if ($run_extra) {
        $cline .= &new_test ($str, undef, 0);
       } else {
@@ -415,13 +373,11 @@ sub parse_args {
       my ($extra_expected) = $special[0];
       my ($run_extra) = ($extra_expected ne "IGNORE" ? 1 : 0);
       my ($str) = "$call sets x to $extra_expected";
-      my ($out_var) = ($in_func ? ", x" : "");
       if (!$run_extra) {
        $str = "";
        $extra_expected = "0";
       }
-      $extra_expected = adjust_arg ($extra_expected, $in_func);
-      $cline .= ", \"$str\"$out_var, 123.456789, $run_extra, $extra_expected";
+      $cline .= ", \"$str\", 123.456789, $run_extra, $extra_expected";
       if ($run_extra) {
        $cline .= &new_test ($str, undef, 0);
       } else {
@@ -433,12 +389,11 @@ sub parse_args {
       my ($extra_expected) = $special[0];
       my ($run_extra) = ($extra_expected ne "IGNORE" ? 1 : 0);
       my ($str) = "$call sets x to $extra_expected";
-      my ($out_var) = ($in_func ? ", x" : "");
       if (!$run_extra) {
        $str = "";
        $extra_expected = "0";
       }
-      $cline .= ", \"$str\"$out_var, 123456789, $run_extra, $extra_expected";
+      $cline .= ", \"$str\", 123456789, $run_extra, $extra_expected";
       if ($run_extra) {
        $cline .= &new_test ($str, undef, 0);
       } else {
@@ -446,24 +401,19 @@ sub parse_args {
       }
     }
   }
-  if ($in_func) {
-    print $file "  $cline);\n";
-  } else {
-    print $file "    $cline },\n";
-  }
+  print $file "    $cline },\n";
 }
 
 # Generate libm-test.c
 sub generate_testfile {
   my ($input, $output) = @_;
   my ($lasttext);
-  my (@args, $i, $str, $thisfct, $in_func);
+  my (@args, $i, $str, $thisfct);
 
   open INPUT, $input or die ("Can't open $input: $!");
   open OUTPUT, ">$output" or die ("Can't open $output: $!");
 
   # Replace the special macros
-  $in_func = 0;
   while (<INPUT>) {
 
     # TEST_...
@@ -471,19 +421,17 @@ sub generate_testfile {
       my ($descr, $args);
       chop;
       ($descr, $args) = ($_ =~ /TEST_(\w+)\s*\((.*)\)/);
-      &parse_args (\*OUTPUT, $descr, $thisfct, $in_func, $args);
+      &parse_args (\*OUTPUT, $descr, $thisfct, $args);
       next;
     }
     # START_DATA (function)
     if (/START_DATA/) {
       ($thisfct) = ($_ =~ /START_DATA\s*\((.*)\)/);
-      $in_func = 0;
       next;
     }
     # START (function)
     if (/START/) {
       ($thisfct) = ($_ =~ /START\s*\((.*)\)/);
-      $in_func = 1;
       print OUTPUT "  init_max_error ();\n";
       next;
     }
@@ -494,7 +442,6 @@ sub generate_testfile {
     # END (function)
     if (/END/) {
       my ($fct, $line, $type);
-      $in_func = 0;
       if (/complex/) {
        s/,\s*complex\s*//;
        $type = 'complex';
index b48f8557e2dee51a144325db4739930001edcd7e..c995aec60db382079e6bc676451d7320fe866f63 100644 (file)
@@ -229,35 +229,26 @@ static int output_max_error;      /* Should the maximal errors printed?  */
 static int output_points;      /* Should the single function results printed?  */
 static int ignore_max_ulp;     /* Should we ignore max_ulp?  */
 
-#define PLUS_ZERO_INIT CHOOSE (0.0L, 0.0, 0.0f,        \
+#define plus_zero      CHOOSE (0.0L, 0.0, 0.0f,        \
                                0.0L, 0.0, 0.0f)
-#define MINUS_ZERO_INIT        CHOOSE (-0.0L, -0.0, -0.0f,     \
+#define minus_zero     CHOOSE (-0.0L, -0.0, -0.0f,     \
                                -0.0L, -0.0, -0.0f)
-#define PLUS_INFTY_INIT        CHOOSE (HUGE_VALL, HUGE_VAL, HUGE_VALF, \
+#define plus_infty     CHOOSE (HUGE_VALL, HUGE_VAL, HUGE_VALF, \
                                HUGE_VALL, HUGE_VAL, HUGE_VALF)
-#define MINUS_INFTY_INIT       CHOOSE (-HUGE_VALL, -HUGE_VAL, -HUGE_VALF, \
-                                       -HUGE_VALL, -HUGE_VAL, -HUGE_VALF)
-#define QNAN_VALUE_INIT        FUNC (__builtin_nan) ("")
-#define MAX_VALUE_INIT CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX,     \
+#define minus_infty    CHOOSE (-HUGE_VALL, -HUGE_VAL, -HUGE_VALF,      \
+                               -HUGE_VALL, -HUGE_VAL, -HUGE_VALF)
+#define qnan_value     FUNC (__builtin_nan) ("")
+#define max_value      CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX,     \
                                LDBL_MAX, DBL_MAX, FLT_MAX)
-#define MIN_VALUE_INIT CHOOSE (LDBL_MIN, DBL_MIN, FLT_MIN,     \
+#define min_value      CHOOSE (LDBL_MIN, DBL_MIN, FLT_MIN,     \
                                LDBL_MIN, DBL_MIN, FLT_MIN)
-#define MIN_SUBNORM_VALUE_INIT CHOOSE (__LDBL_DENORM_MIN__,    \
+#define min_subnorm_value      CHOOSE (__LDBL_DENORM_MIN__,    \
                                        __DBL_DENORM_MIN__,     \
                                        __FLT_DENORM_MIN__,     \
                                        __LDBL_DENORM_MIN__,    \
                                        __DBL_DENORM_MIN__,     \
                                        __FLT_DENORM_MIN__)
 
-static const FLOAT plus_zero = PLUS_ZERO_INIT;
-static const FLOAT minus_zero = MINUS_ZERO_INIT;
-static const FLOAT plus_infty = PLUS_INFTY_INIT;
-static const FLOAT minus_infty = MINUS_INFTY_INIT;
-static const FLOAT qnan_value = QNAN_VALUE_INIT;
-static const FLOAT max_value = MAX_VALUE_INIT;
-static const FLOAT min_value = MIN_VALUE_INIT;
-static const FLOAT min_subnorm_value = MIN_SUBNORM_VALUE_INIT;
-
 static FLOAT max_error, real_max_error, imag_max_error;
 
 
This page took 0.127638 seconds and 5 git commands to generate.