]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix BZ #29463 in the ibm128 implementation of y1l too
authorMichael Hudson-Doyle <michael.hudson@canonical.com>
Mon, 22 Aug 2022 02:05:04 +0000 (14:05 +1200)
committerTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Mon, 24 Oct 2022 13:59:20 +0000 (10:59 -0300)
Avoid moving code across SET_RESTORE_ROUNDL in order to fix
[BZ #29463].

Tested-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
sysdeps/ieee754/ldbl-128ibm/e_j1l.c

index f85ba9446663d39d5fc6eaaea5a4a1f9a213c234..0a5fe68342fc974eec7ab3f528c7611d583cb391 100644 (file)
@@ -792,10 +792,13 @@ __ieee754_y1l (long double x)
     {
       /* 0 <= x <= 2 */
       SET_RESTORE_ROUNDL (FE_TONEAREST);
+      xx = math_opt_barrier (xx);
+      x = math_opt_barrier (x);
       z = xx * xx;
       p = xx * neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D);
       p = -TWOOPI / xx + p;
       p = TWOOPI * __ieee754_logl (x) * __ieee754_j1l (x) + p;
+      math_force_eval (p);
       return p;
     }