Actions
Bug #21659
closedrstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
Bug #21659:
rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
Status:
Feedback
Assignee:
-
Target version:
-
ruby -v:
ruby 3.3.10 (2025-10-23 revision 343ea05002) [x86_64-linux]
Description
All extensions now have this error when using -Werror -Wmissing-field-initializers:
In file included from /home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby/internal/arithmetic/char.h:29,
from /home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby/internal/arithmetic.h:24,
from /home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby/ruby.h:28,
from /home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby.h:38,
from example_wrap.c:1008:
/home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby/internal/core/rstring.h: In function ‘rbimpl_rstring_getmem’:
/home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby/internal/core/rstring.h:398:16: error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers]
398 | struct RString retval = {RBASIC_INIT};
| ^~~~~~~
/home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby/internal/core/rstring.h:206:10: note: ‘len’ declared here
206 | long len;
| ^~~
Can you please test with warnings turned on as this now breaks all extensions that rely on Ruby.h being warning free.
Looks like it is due to commit https://github.com/ruby/ruby/commit/5a8d7642168f4ea0d9331fded3033c225bbc36c5 and expect that
struct RString retval = {RBASIC_INIT};
should have been changed to:
struct RString retval = {RBASIC_INIT, 0};
in rstring.h as well as all in the actual Ruby code base.
Actions