summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2020-06-10 10:15:52 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2020-06-10 10:15:52 +0000
commit3f7f7be7b31f719f266975ca8a9377ad3894adc4 (patch)
treecf2f560def0175ae796dc71ede8497244e507a27
parent350f339c509034322a18f491a2ae470668cb2cc4 (diff)
downloadmpfr-3f7f7be7b31f719f266975ca8a9377ad3894adc4.tar.gz
[src/mpfr-mini-gmp.c] For gmp_randseed_ui, which uses srand48, use
a portable version of the conversion from unsigned long to long. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@13960 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--src/mpfr-mini-gmp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mpfr-mini-gmp.c b/src/mpfr-mini-gmp.c
index f69e26969..abdcb9aa2 100644
--- a/src/mpfr-mini-gmp.c
+++ b/src/mpfr-mini-gmp.c
@@ -40,7 +40,9 @@ gmp_randinit_default (gmp_randstate_t state)
void
gmp_randseed_ui (gmp_randstate_t state, unsigned long int seed)
{
- srand48 (seed);
+ /* With a portable version of the conversion from unsigned long to long
+ (at least GCC and Clang optimize this expression to identity). */
+ srand48 (seed > LONG_MAX ? -1 - (long) ~seed : (long) seed);
}
#endif