From 5c61caa48154e3e43ff29ab865310aa9bdd9e83a Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Mon, 25 Apr 2022 14:30:54 -0400 Subject: Fix strict aliasing issue with call to rb_id_table_lookup() Previously, GCC 11 with -O2 LTO issues -Wmaybe-uninitialized here. --- vm_method.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'vm_method.c') diff --git a/vm_method.c b/vm_method.c index c4b95f9391..6194267077 100644 --- a/vm_method.c +++ b/vm_method.c @@ -139,10 +139,11 @@ void rb_clear_constant_cache(void) {} void rb_clear_constant_cache_for_id(ID id) { + VALUE lookup_result; rb_vm_t *vm = GET_VM(); - st_table *ics; - if (rb_id_table_lookup(vm->constant_cache, id, (VALUE *) &ics)) { + if (rb_id_table_lookup(vm->constant_cache, id, &lookup_result)) { + st_table *ics = (st_table *)lookup_result; st_foreach(ics, rb_clear_constant_cache_for_id_i, (st_data_t) NULL); ruby_vm_constant_cache_invalidations += ics->num_entries; } -- cgit v1.2.1