From e1182d114ad35c52828d6ca36da590cdd1f3ee58 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 25 Sep 2026 17:14:03 +0900 Subject: [PATCH] win32/resolv: Cast method functions with RUBY_METHOD_FUNC GCC 15 in C23 mode reads `ANYARGS` as `(void)`, so the bare function pointers are rejected against Ruby headers that do not add the cast themselves, as happened with Ruby 3.1 on Windows. https://github.com/ruby/resolv/issues/92 Co-Authored-By: Claude Opus 5.5 --- ext/win32/resolv/resolv.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ext/win32/resolv/resolv.c b/ext/win32/resolv/resolv.c index 9150df5dc11..00173e5a364 100644 --- a/ext/win32/resolv/resolv.c +++ b/ext/win32/resolv/resolv.c @@ -247,11 +247,11 @@ InitVM_resolv(void) reg_key_class = regkey; rb_undef_alloc_func(regkey); - rb_define_private_method(singl, "get_dns_server_list", get_dns_server_list, 0); - rb_define_private_method(singl, "tcpip_params", tcpip_params_open, 0); - rb_define_method(regkey, "open", reg_open, 1); - rb_define_method(regkey, "each_key", reg_each_key, 0); - rb_define_method(regkey, "value", reg_value, 1); + rb_define_private_method(singl, "get_dns_server_list", RUBY_METHOD_FUNC(get_dns_server_list), 0); + rb_define_private_method(singl, "tcpip_params", RUBY_METHOD_FUNC(tcpip_params_open), 0); + rb_define_method(regkey, "open", RUBY_METHOD_FUNC(reg_open), 1); + rb_define_method(regkey, "each_key", RUBY_METHOD_FUNC(reg_each_key), 0); + rb_define_method(regkey, "value", RUBY_METHOD_FUNC(reg_value), 1); } void