Tests: Defeat inlining of math functions by GCC >= 4.3.0.
authorBruno Haible <bruno@clisp.org>
Sun, 24 Jan 2010 20:22:00 +0000 (21:22 +0100)
committerBruno Haible <bruno@clisp.org>
Sun, 24 Jan 2010 20:23:07 +0000 (21:23 +0100)
ChangeLog
tests/test-acosl.c
tests/test-asinl.c
tests/test-atanl.c
tests/test-cosl.c
tests/test-expl.c
tests/test-logl.c
tests/test-sinl.c
tests/test-sqrtl.c
tests/test-tanl.c

index 6b07352..f2a0c7b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,27 @@
 2010-01-24  Bruno Haible  <bruno@clisp.org>
 
+       Tests: Defeat inlining of math functions by GCC >= 4.3.0.
+       * tests/test-acosl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-asinl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-atanl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-cosl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-expl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-logl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-sinl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-sqrtl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+       * tests/test-tanl.c (x): New variable.
+       (main): Store argument in x and fetch it from x.
+
+2010-01-24  Bruno Haible  <bruno@clisp.org>
+
        Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default.
        * gnulib-tool (func_emit_tests_Makefile_am): Add EXEEXT and srcdir
        assignments to the initial TESTS_ENVIRONMENT.
index 5f95919..9533def 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (acosl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = acosl (0.6L);
+  x = 0.6L;
+  y = acosl (x);
   ASSERT (y >= 0.9272952180L && y <= 0.9272952181L);
 
   return 0;
index 811f2d0..8b60457 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (asinl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = asinl (0.6L);
+  x = 0.6L;
+  y = asinl (x);
   ASSERT (y >= 0.6435011087L && y <= 0.6435011088L);
 
   return 0;
index e78e823..c365401 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (atanl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = atanl (0.6L);
+  x = 0.6L;
+  y = atanl (x);
   ASSERT (y >= 0.5404195002L && y <= 0.5404195003L);
 
   return 0;
index 5e63fdd..a13e75f 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (cosl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = cosl (0.6L);
+  x = 0.6L;
+  y = cosl (x);
   ASSERT (y >= 0.8253356149L && y <= 0.8253356150L);
 
   return 0;
index fe671c8..440bc0e 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (expl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = expl (0.6L);
+  x = 0.6L;
+  y = expl (x);
   ASSERT (y >= 1.822118800L && y <= 1.822118801L);
 
   return 0;
index 12bf624..357df92 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (logl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = logl (0.6L);
+  x = 0.6L;
+  y = logl (x);
   ASSERT (y >= -0.5108256238L && y <= -0.5108256237L);
 
   return 0;
index 19e7e62..8d69b26 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (sinl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = sinl (0.6L);
+  x = 0.6L;
+  y = sinl (x);
   ASSERT (y >= 0.5646424733L && y <= 0.5646424734L);
 
   return 0;
index 2bf34fa..a7baef7 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (sqrtl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = sqrtl (0.6L);
+  x = 0.6L;
+  y = sqrtl (x);
   ASSERT (y >= 0.7745966692L && y <= 0.7745966693L);
 
   return 0;
index 3d692fc..6e105cb 100644 (file)
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (tanl, long double, (long double));
 #include "fpucw.h"
 #include "macros.h"
 
+volatile long double x;
 long double y;
 
 int
@@ -36,7 +37,8 @@ main ()
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
   /* A particular value.  */
-  y = tanl (0.6L);
+  x = 0.6L;
+  y = tanl (x);
   ASSERT (y >= 0.6841368083L && y <= 0.6841368084L);
 
   return 0;