1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

let the .bss section initialize static variables

ISO/IEC 9899:1999 section 6.7.8 specifies the values of static
storage which are not explicitly initialized.  According to that
these initializers can be omitted.  Doing so improvoes future
compatibility against addition / deletion of the fields of this
struct.
This commit is contained in:
卜部昌平 2019-11-05 13:46:08 +09:00
parent 6ff1250739
commit 7c07300491

View file

@ -2395,12 +2395,12 @@ RUBY_FUNC_NONNULL(1, bool rb_method_basic_definition_p_with_cc(struct rb_call_da
#ifdef __GNUC__
# define rb_funcallv(recv, mid, argc, argv) \
__extension__({ \
static struct rb_call_data rb_funcallv_data = { { 0, }, { 0, }, }; \
static struct rb_call_data rb_funcallv_data; \
rb_funcallv_with_cc(&rb_funcallv_data, recv, mid, argc, argv); \
})
# define rb_method_basic_definition_p(klass, mid) \
__extension__({ \
static struct rb_call_data rb_mbdp = { { 0, }, { 0, }, }; \
static struct rb_call_data rb_mbdp; \
(klass == Qfalse) ? /* hidden object cannot be overridden */ true : \
rb_method_basic_definition_p_with_cc(&rb_mbdp, klass, mid); \
})