]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math/test-tgmath2: Fix fabs failure when no long double
authorStafford Horne <shorne@gmail.com>
Thu, 7 Jan 2021 21:45:36 +0000 (06:45 +0900)
committerStafford Horne <shorne@gmail.com>
Fri, 15 Jan 2021 02:24:04 +0000 (11:24 +0900)
I have been testing with GCC trunk and GLIBC master while working on the
OpenRISC port.  This test has been failing with fabs not being called,
This is caused as my architecture is configure with no long double
meaning the two calls are the same:

  TEST (fabs (Vdouble1), double, fabs);
  TEST (fabs (Vldouble1), ldouble, fabs);

Instead of the tgmath calls resolving to fabs and fabsl both calls are
fabs.  Next, do to compiler optimiations the second call is eliminated.
Fix this by invoking the failing TEST with Vldouble2.

Note, I also updated the FAIL message to more clearly show where the
failure happened, so I see:

  FAIL: math/test-tgmath2
  original exit status 1
  wrong function called, fabs (ldouble) failure on line 174

Cc: Joseph Myers <joseph@codesourcery.com>
math/test-tgmath2.c

index 14a34531695fb5431ee47a80e58cd8246b18ae89..b8fb00c566439ab0c3a0f9d2789833690ccef60c 100644 (file)
@@ -122,7 +122,7 @@ int counts[Tlast][C_last];
       __asm __volatile ("" : : "r" (&texpr));                  \
       if (count != 1 || counts[T##type][C_##fn] != 1)          \
        {                                                       \
-         FAIL ("wrong function called");                       \
+         FAIL ("wrong function called, "#fn" ("#type")");      \
          memset (counts, 0, sizeof (counts));                  \
        }                                                       \
       count = 0;                                               \
@@ -171,7 +171,7 @@ test_fabs (const int Vint4, const long long int Vllong4)
   TEST (fabs (vcldouble1), ldouble, cabs);
   TEST (fabs (Vfloat1), float, fabs);
   TEST (fabs (Vdouble1), double, fabs);
-  TEST (fabs (Vldouble1), ldouble, fabs);
+  TEST (fabs (Vldouble2), ldouble, fabs);
 #ifndef __OPTIMIZE__
   /* GCC is too smart to optimize these out.  */
   TEST (fabs (Vint1), double, fabs);