ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
@ 2021-11-11 23:47 xtkoba (Tee KOBAYASHI)
  2021-11-12 10:45 ` [ruby-core:106035] " jaruga (Jun Aruga)
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: xtkoba (Tee KOBAYASHI) @ 2021-11-11 23:47 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been reported by xtkoba (Tee KOBAYASHI).

----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106035] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
@ 2021-11-12 10:45 ` jaruga (Jun Aruga)
  2021-11-14 12:26 ` [ruby-core:106050] " Eregon (Benoit Daloze)
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jaruga (Jun Aruga) @ 2021-11-12 10:45 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by jaruga (Jun Aruga).


For the arm32 + clang's log <https://rubyci.s3.amazonaws.com/crossruby/crossruby-master-armv7a-android30/log/20211111T210030Z.log.html.gz>.

If we want to add the arm32 + clang case to the pull-request timing CI, we can add the arm32 + clang case to the Cirrus CI.

Right now we have the arm32 + gcc case on Travis.
https://github.com/ruby/ruby/blob/415671a28273e5bfbe9aa00a0e386f025720ac23/.travis.yml#L122

We are using Cirrus CI for the Arm cases. Note Travis Arm pipeline is unstable for the more than 2 jobs.
https://github.com/ruby/ruby/blob/master/.cirrus.yml


----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94626

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106050] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
  2021-11-12 10:45 ` [ruby-core:106035] " jaruga (Jun Aruga)
@ 2021-11-14 12:26 ` Eregon (Benoit Daloze)
  2021-11-15  1:53 ` [ruby-core:106058] " ioquatix (Samuel Williams)
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Eregon (Benoit Daloze) @ 2021-11-14 12:26 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by Eregon (Benoit Daloze).

Assignee set to ioquatix (Samuel Williams)

cc @ioquatix

----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94637

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106058] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
  2021-11-12 10:45 ` [ruby-core:106035] " jaruga (Jun Aruga)
  2021-11-14 12:26 ` [ruby-core:106050] " Eregon (Benoit Daloze)
@ 2021-11-15  1:53 ` ioquatix (Samuel Williams)
  2021-11-15  2:02 ` [ruby-core:106059] " ioquatix (Samuel Williams)
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ioquatix (Samuel Williams) @ 2021-11-15  1:53 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by ioquatix (Samuel Williams).


Thanks for this report.

----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94649

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106059] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
                   ` (2 preceding siblings ...)
  2021-11-15  1:53 ` [ruby-core:106058] " ioquatix (Samuel Williams)
@ 2021-11-15  2:02 ` ioquatix (Samuel Williams)
  2021-11-15  2:19 ` [ruby-core:106060] " ioquatix (Samuel Williams)
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ioquatix (Samuel Williams) @ 2021-11-15  2:02 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by ioquatix (Samuel Williams).


Does 32-bit Ruby support 64-bit wide integers? I guess no?

----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94650

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106060] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
                   ` (3 preceding siblings ...)
  2021-11-15  2:02 ` [ruby-core:106059] " ioquatix (Samuel Williams)
@ 2021-11-15  2:19 ` ioquatix (Samuel Williams)
  2021-11-19 12:20 ` [ruby-core:106171] " jaruga (Jun Aruga)
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ioquatix (Samuel Williams) @ 2021-11-15  2:19 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by ioquatix (Samuel Williams).


https://github.com/ruby/ruby/pull/5114 should fix this, but do we have 32-bit CI to confirm?

----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94651

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106171] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
                   ` (4 preceding siblings ...)
  2021-11-15  2:19 ` [ruby-core:106060] " ioquatix (Samuel Williams)
@ 2021-11-19 12:20 ` jaruga (Jun Aruga)
  2021-11-20  0:25 ` [ruby-core:106186] " ioquatix (Samuel Williams)
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jaruga (Jun Aruga) @ 2021-11-19 12:20 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by jaruga (Jun Aruga).


Nice! Thanks!

Travis has the Arm 32-bit case, but not with clang but with gcc.
https://app.travis-ci.com/github/ruby/ruby/jobs/548818403

For RubyCI https://rubyci.org/ - the Raspbian 10 (arm) seems arm 32-bit. But I don't know how to login. Other servers in Ruby CI seems arm 64 bit.


----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94776

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106186] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
                   ` (5 preceding siblings ...)
  2021-11-19 12:20 ` [ruby-core:106171] " jaruga (Jun Aruga)
@ 2021-11-20  0:25 ` ioquatix (Samuel Williams)
  2021-11-22  9:40 ` [ruby-core:106203] " jaruga (Jun Aruga)
  2021-12-16  7:56 ` [ruby-core:106706] " ioquatix (Samuel Williams)
  8 siblings, 0 replies; 10+ messages in thread
From: ioquatix (Samuel Williams) @ 2021-11-20  0:25 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by ioquatix (Samuel Williams).


I merged this does it look like it’s fixed from your end? The RubyCI looks okay to me.

----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94794

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106203] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
                   ` (6 preceding siblings ...)
  2021-11-20  0:25 ` [ruby-core:106186] " ioquatix (Samuel Williams)
@ 2021-11-22  9:40 ` jaruga (Jun Aruga)
  2021-12-16  7:56 ` [ruby-core:106706] " ioquatix (Samuel Williams)
  8 siblings, 0 replies; 10+ messages in thread
From: jaruga (Jun Aruga) @ 2021-11-22  9:40 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by jaruga (Jun Aruga).


The RubyCI reported originally looks ok now.
crossruby-master-armv7a-android30
https://rubyci.s3.amazonaws.com/crossruby/crossruby-master-armv7a-android30/recent.html


----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-94810

* Author: xtkoba (Tee KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:106706] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
  2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
                   ` (7 preceding siblings ...)
  2021-11-22  9:40 ` [ruby-core:106203] " jaruga (Jun Aruga)
@ 2021-12-16  7:56 ` ioquatix (Samuel Williams)
  8 siblings, 0 replies; 10+ messages in thread
From: ioquatix (Samuel Williams) @ 2021-12-16  7:56 UTC (permalink / raw
  To: ruby-core

Issue #18330 has been updated by ioquatix (Samuel Williams).

Status changed from Open to Closed

Thanks!

----------------------------------------
Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
https://bugs.ruby-lang.org/issues/18330#change-95392

* Author: xtkoba (Tee KOBAYASHI)
* Status: Closed
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.1.0dev (2021-11-11 master 84202963c5) [arm-linux-android]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
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
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-12-16  7:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-11 23:47 [ruby-core:106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation xtkoba (Tee KOBAYASHI)
2021-11-12 10:45 ` [ruby-core:106035] " jaruga (Jun Aruga)
2021-11-14 12:26 ` [ruby-core:106050] " Eregon (Benoit Daloze)
2021-11-15  1:53 ` [ruby-core:106058] " ioquatix (Samuel Williams)
2021-11-15  2:02 ` [ruby-core:106059] " ioquatix (Samuel Williams)
2021-11-15  2:19 ` [ruby-core:106060] " ioquatix (Samuel Williams)
2021-11-19 12:20 ` [ruby-core:106171] " jaruga (Jun Aruga)
2021-11-20  0:25 ` [ruby-core:106186] " ioquatix (Samuel Williams)
2021-11-22  9:40 ` [ruby-core:106203] " jaruga (Jun Aruga)
2021-12-16  7:56 ` [ruby-core:106706] " ioquatix (Samuel Williams)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).