mirror of
https://github.com/vale981/arb
synced 2025-03-05 09:21:38 -05:00
fix unsafe use of FLINT_ABS for slong -> ulong conversion in arf.h
This commit is contained in:
parent
5279dab384
commit
2a11da1c15
1 changed files with 6 additions and 3 deletions
9
arf.h
9
arf.h
|
@ -433,10 +433,13 @@ arf_init_set_ui(arf_t x, ulong v)
|
|||
}
|
||||
}
|
||||
|
||||
/* FLINT_ABS is unsafe for x = WORD_MIN */
|
||||
#define UI_ABS_SI(x) (((slong)(x) < 0) ? (-(ulong)(x)) : ((ulong)(x)))
|
||||
|
||||
ARF_INLINE void
|
||||
arf_init_set_si(arf_t x, slong v)
|
||||
{
|
||||
arf_init_set_ui(x, FLINT_ABS(v));
|
||||
arf_init_set_ui(x, UI_ABS_SI(v));
|
||||
if (v < 0)
|
||||
ARF_NEG(x);
|
||||
}
|
||||
|
@ -465,7 +468,7 @@ arf_set_ui(arf_t x, ulong v)
|
|||
ARF_INLINE void
|
||||
arf_set_si(arf_t x, slong v)
|
||||
{
|
||||
arf_set_ui(x, FLINT_ABS(v));
|
||||
arf_set_ui(x, UI_ABS_SI(v));
|
||||
if (v < 0)
|
||||
ARF_NEG(x);
|
||||
}
|
||||
|
@ -556,7 +559,7 @@ arf_set_round_ui(arf_t x, ulong v, slong prec, arf_rnd_t rnd)
|
|||
ARF_INLINE int
|
||||
arf_set_round_si(arf_t x, slong v, slong prec, arf_rnd_t rnd)
|
||||
{
|
||||
return _arf_set_round_ui(x, FLINT_ABS(v), v < 0, prec, rnd);
|
||||
return _arf_set_round_ui(x, UI_ABS_SI(v), v < 0, prec, rnd);
|
||||
}
|
||||
|
||||
ARF_INLINE int
|
||||
|
|
Loading…
Add table
Reference in a new issue