Actions
Bug #18330
closedMake failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
Description
Observed in crossruby CI for armv7a-android30 (http://rubyci.s3.amazonaws.com/crossruby/crossruby-master-armv7a-android30/log/20211111T210030Z.log.html.gz):
compiling io_buffer.c
io_buffer.c:297:16: error: implicit conversion loses integer precision: 'off_t' (aka 'long long') to 'size_t' (aka 'unsigned int') [-Werror,-Wshorten-64-to-32]
size = rb_file_size(io);
~ ^~~~~~~~~~~~~~~~
io_buffer.c:881:1: error: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long long') to 'unsigned long' [-Werror,-Wshorten-64-to-32]
DECLAIR_TYPE(u64, uint64_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_ULONG2NUM, RB_NUM2ULONG, ruby_swap64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
io_buffer.c:855:17: note: expanded from macro 'DECLAIR_TYPE'
return wrap(value); \
~~~~ ^~~~~
io_buffer.c:882:1: error: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long long') to 'unsigned long' [-Werror,-Wshorten-64-to-32]
DECLAIR_TYPE(U64, uint64_t, RB_IO_BUFFER_BIG_ENDIAN, RB_ULONG2NUM, RB_NUM2ULONG, ruby_swap64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
io_buffer.c:855:17: note: expanded from macro 'DECLAIR_TYPE'
return wrap(value); \
~~~~ ^~~~~
io_buffer.c:883:1: error: implicit conversion loses integer precision: 'int64_t' (aka 'long long') to 'long' [-Werror,-Wshorten-64-to-32]
DECLAIR_TYPE(s64, int64_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_LONG2NUM, RB_NUM2LONG, ruby_swap64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
io_buffer.c:855:17: note: expanded from macro 'DECLAIR_TYPE'
return wrap(value); \
~~~~ ^~~~~
io_buffer.c:884:1: error: implicit conversion loses integer precision: 'int64_t' (aka 'long long') to 'long' [-Werror,-Wshorten-64-to-32]
DECLAIR_TYPE(S64, int64_t, RB_IO_BUFFER_BIG_ENDIAN, RB_LONG2NUM, RB_NUM2LONG, ruby_swap64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
io_buffer.c:855:17: note: expanded from macro 'DECLAIR_TYPE'
return wrap(value); \
~~~~ ^~~~~
5 errors generated.
gmake: *** [Makefile:435: io_buffer.o] Error 1
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0