[ruby-core:99522] [Ruby master Bug#17108] error: initialization of ‘long unsigned int’ from ‘void *’ makes integer from pointer without a cast
From:
aotto1968@...
Date:
2020-08-09 09:43:01 UTC
List:
ruby-core #99522
Issue #17108 has been reported by aotto1968 (Andreas Otto).
----------------------------------------
Bug #17108: error: initialization of ‘long unsigned int’ from ‘void *’ makes integer from pointer without a cast
https://bugs.ruby-lang.org/issues/17108
* Author: aotto1968 (Andreas Otto)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux-gnu]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hi, it seems that the "OPTIMIZATION" macro for "rb_funcall" make something "bad"
|| CC rubymsgque_la-misc_ruby.lo
|| .../misc_ruby.c: In function ‘rubymsgque_OtCheckCallable’:
.../misc_ruby.c|430 col 18| error: initialization of ‘long unsigned int’ from ‘void *’ makes integer from pointer without a cast [-Werror=int-conversion]
|| MQ_INT arity = VAL2INT(rb_funcall(val,NS(id_arity),0,NULL));
|| ^~~~~~~
.../misc_ruby.c|430 col 18| note: (near initialization for ‘rb_funcall_args[0]’)
|| cc1: all warnings being treated as errors
MQ_INT arity = VAL2INT(rb_funcall(val,NS(id_arity),0,NULL));
#define VAL2INT(val) (MQ_INT)NUM2INT(val)
ID NS(id_arity);
#if defined(__GNUC__) && defined(HAVE_VA_ARGS_MACRO) && defined(__OPTIMIZE__)
# define rb_yield_values(argc, ...) \
__extension__({ \
const int rb_yield_values_argc = (argc); \
const VALUE rb_yield_values_args[] = {__VA_ARGS__}; \
const int rb_yield_values_nargs = \
(int)(sizeof(rb_yield_values_args) / sizeof(VALUE)); \
rb_yield_values2( \
rb_varargs_argc_check(rb_yield_values_argc, rb_yield_values_nargs), \
rb_yield_values_nargs ? rb_yield_values_args : NULL); \
})
# define rb_funcall(recv, mid, argc, ...) \
__extension__({ \
const int rb_funcall_argc = (argc); \
const VALUE rb_funcall_args[] = {__VA_ARGS__}; \
const int rb_funcall_nargs = \
(int)(sizeof(rb_funcall_args) / sizeof(VALUE)); \
rb_funcallv(recv, mid, \
rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
rb_funcall_nargs ? rb_funcall_args : NULL); \
})
#endif
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>