libgcc: Avoid signed negation overflow in __powi?f2 [PR99236]
When these functions are called with integer minimum, there is UB on the libgcc side. Fixed in the obvious way, the code in the end wants ABSU_EXPR behavior. 2021-02-24 Jakub Jelinek <jakub@redhat.com> PR libgcc/99236 * libgcc2.c (__powisf2, __powidf2, __powitf2, __powixf2): Perform negation of m in unsigned type.
This commit is contained in:
parent
b6680c2084
commit
35da095d7e
|
@ -1834,7 +1834,7 @@ __fixunssfSI (SFtype a)
|
|||
TYPE
|
||||
NAME (TYPE x, int m)
|
||||
{
|
||||
unsigned int n = m < 0 ? -m : m;
|
||||
unsigned int n = m < 0 ? -(unsigned int) m : (unsigned int) m;
|
||||
TYPE y = n % 2 ? x : 1;
|
||||
while (n >>= 1)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue