This is the mail archive of the libc-alpha@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]

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


Hi!

On Thu, 21 Mar 2013 13:05:57 +0100, Andreas Jaeger <aj@suse.com> wrote:
> On Thursday, March 21, 2013 11:25:27 Thomas Schwinge wrote:
> > In math/libm-test.inc, when doing things like the following:
> > 
> >       if (SNAN_TESTS (FLOAT))
> >         TEST_f_f (gamma, snan_value, qnan_value, INVALID_EXCEPTION);
> > 
> > ..., this is what appears in math/libm-test.c:
> > 
> >       if (SNAN_TESTS (FLOAT))
> >       signgam = 0;
> >       check_float ("gamma (sNaN) == qNaN",  FUNC(gamma) (snan_value),
> > qnan_value, 0, 0, INVALID_EXCEPTION);
> > 
> > ..., which is not quite what I intended.
> > 
> > Is the collowing patch OK?  I didn't bother with proper indentation of
> > the emitted statements, as the file is primarily meant for
> > consumption by the compiler only.
> 
> Still, I would like to see proper intentation - as it's done already 
> today.

Like this?

	* math/gen-libm-test.pl (parse_args, special_functions): Properly
	wrap blocks consisting of several statements.

diff --git math/gen-libm-test.pl math/gen-libm-test.pl
index 01e0fc2..f50f1d9 100755
--- math/gen-libm-test.pl
+++ 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


GrÃÃe,
 Thomas

Attachment: pgpOe1AluKzxU.pgp
Description: PGP signature


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