mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-11 11:50:06 +00:00
Fix maybe-uninitialized error on powerpc
The build has been failing on powerpc64le-linux-gnu with GCC 10 due to a maybe-uninitialized error: ../sysdeps/ieee754/dbl-64/mpa.c:875:6: error: ‘w.e’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 875 | EY -= EX; | ^~ The warning is thrown because when __inv is called by __dvd *y is not initialized and if t == 0 before calling __dbl_mp, EY will stay uninitialized, as the function does not touch it in this case. However, since t will be set to 1/t before calling __dbl_mp, t == 0 will never happen, so we can instruct the compiler to ignore this case, which suppresses the warning. Tested on powerpc64le. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
This commit is contained in:
parent
be5c5315b9
commit
9f8b135f76
@ -871,6 +871,13 @@ __inv (const mp_no *x, mp_no *y, int p)
|
||||
z.e = 0;
|
||||
__mp_dbl (&z, &t, p);
|
||||
t = 1 / t;
|
||||
|
||||
/* t == 0 will never happen at this point, since 1/t can only be 0 if t is
|
||||
infinity, but before the division t == mantissa of x (exponent is 0). We
|
||||
can instruct the compiler to ignore this case. */
|
||||
if (t == 0)
|
||||
__builtin_unreachable ();
|
||||
|
||||
__dbl_mp (t, y, p);
|
||||
EY -= EX;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user