Fix maybe uninitialized warnings in random.c

Fixes the following compiler warnings:

    random.c: In function `random_init`:
    random.c:416:38: warning: `rng` may be used uninitialized in this function [-Wmaybe-uninitialized]
      416 |     unsigned int major = rng->version.major;
          |                          ~~~~~~~~~~~~^~~~~~
    random.c: In function `random_bytes`:
    random.c:1284:8: warning: `rng` may be used uninitialized in this function [-Wmaybe-uninitialized]
    1284 |     rng->get_bytes(rnd, ptr, n);
         |     ~~~^~~~~~~~~~~
    random.c:1299:34: note: `rng` was declared here
    1299 |     const rb_random_interface_t *rng;
         |                                  ^~~
    random.c: In function `rand_random_number`:
    random.c:1606:12: warning: `rng` may be used uninitialized in this function [-Wmaybe-uninitialized]
    1606 |     return rand_range(obj, rng, rnd, vmax);
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    random.c:1624:34: note: `rng` was declared here
    1624 |     const rb_random_interface_t *rng;
          |                                  ^~~
    random.c: In function `random_rand`:
    random.c:1120:15: warning: `rng` may be used uninitialized in this function [-Wmaybe-uninitialized]
    1120 |     return rng->get_int32(rnd);
         |            ~~~^~~~~~~~~~~
    random.c:1573:34: note: `rng` was declared here
    1573 |     const rb_random_interface_t *rng;
         |                                  ^~~
This commit is contained in:
Peter Zhu 2025-12-28 15:43:36 -05:00
parent d615dbf4e2
commit 9e78353c0f
Notes: git 2025-12-28 21:26:15 +00:00

View File

@ -405,7 +405,7 @@ rand_init(const rb_random_interface_t *rng, rb_random_t *rnd, VALUE seed)
static VALUE static VALUE
random_init(int argc, VALUE *argv, VALUE obj) random_init(int argc, VALUE *argv, VALUE obj)
{ {
const rb_random_interface_t *rng; const rb_random_interface_t *rng = NULL;
rb_random_t *rnd = try_get_rnd(obj, &rng); rb_random_t *rnd = try_get_rnd(obj, &rng);
if (!rng) { if (!rng) {
@ -1296,7 +1296,7 @@ rand_bytes(const rb_random_interface_t *rng, rb_random_t *rnd, long n)
static VALUE static VALUE
random_bytes(VALUE obj, VALUE len) random_bytes(VALUE obj, VALUE len)
{ {
const rb_random_interface_t *rng; const rb_random_interface_t *rng = NULL;
rb_random_t *rnd = try_get_rnd(obj, &rng); rb_random_t *rnd = try_get_rnd(obj, &rng);
return rand_bytes(rng, rnd, NUM2LONG(rb_to_int(len))); return rand_bytes(rng, rnd, NUM2LONG(rb_to_int(len)));
} }
@ -1570,7 +1570,7 @@ static VALUE rand_random(int argc, VALUE *argv, VALUE obj, const rb_random_inter
static VALUE static VALUE
random_rand(int argc, VALUE *argv, VALUE obj) random_rand(int argc, VALUE *argv, VALUE obj)
{ {
const rb_random_interface_t *rng; const rb_random_interface_t *rng = NULL;
rb_random_t *rnd = try_get_rnd(obj, &rng); rb_random_t *rnd = try_get_rnd(obj, &rng);
VALUE v = rand_random(argc, argv, obj, rng, rnd); VALUE v = rand_random(argc, argv, obj, rng, rnd);
check_random_number(v, argv); check_random_number(v, argv);
@ -1621,7 +1621,7 @@ rand_random(int argc, VALUE *argv, VALUE obj, const rb_random_interface_t *rng,
static VALUE static VALUE
rand_random_number(int argc, VALUE *argv, VALUE obj) rand_random_number(int argc, VALUE *argv, VALUE obj)
{ {
const rb_random_interface_t *rng; const rb_random_interface_t *rng = NULL;
rb_random_t *rnd = try_get_rnd(obj, &rng); rb_random_t *rnd = try_get_rnd(obj, &rng);
VALUE v = rand_random(argc, argv, obj, rng, rnd); VALUE v = rand_random(argc, argv, obj, rng, rnd);
if (NIL_P(v)) v = rand_random(0, 0, obj, rng, rnd); if (NIL_P(v)) v = rand_random(0, 0, obj, rng, rnd);