[PATCH] random: range is not portably RAND_MAX [BZ #7003]

John Marshall John.W.Marshall@glasgow.ac.uk
Thu Jun 18 10:31:32 GMT 2020

On other platforms, RAND_MAX (which is the range of rand(3))
may differ from 2^31-1 (which is the range of random(3)).

On Tue, Jun 09, 2020 at 05:08:45PM +0100, John Marshall wrote:
> The fix applied for BZ #7003 made a similar change to manual/math.texi
> but this comment was neglected. I am not FSF copyright assigned, but I
> imagine this change is trivial enough not to need it.

First ping as per [1] for this triviality.
I used interval notation similar to lrand48() etc, but happy to leave
it as "between 0 and 2^31-1 inclusive" if that's preferable.



[1] https://sourceware.org/glibc/wiki/Contribution%20checklist

 stdlib/stdlib.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index f971df4247..fb06bb9ac1 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -397,7 +397,7 @@ extern long int a64l (const char *__s)
    `initstate' and `setstate' functions are those from BSD Unices.
    The `rand' and `srand' functions are required by the ANSI standard.
    We provide both interfaces to the same random number generator.  */
-/* Return a random long integer between 0 and RAND_MAX inclusive.  */
+/* Return a random long integer in [0,2^31).  */
 extern long int random (void) __THROW;
 /* Seed the random number generator with the given number.  */

More information about the Libc-alpha mailing list