Issue #19323 has been updated by nagachika (Tomoyuki Chikanaga).
Backport changed from 2.7: REQUIRED, 3.0: REQUIRED, 3.1: DONE, 3.2: REQUIRED to 2.7:
REQUIRED, 3.0: REQUIRED, 3.1: DONE, 3.2: DONE
ruby_3_2 a048f7882a13e96080021a5bc13ef1fb293b4985 merged revision(s)
1cdf8ab07b24ebd16e93621957196e8b1d67f2ba.
----------------------------------------
Bug #19323: Integer overflow in `Integer#<<`
https://bugs.ruby-lang.org/issues/19323#change-103681
* Author: nobu (Nobuyoshi Nakada)
* Status: Closed
* Priority: Normal
* Backport: 2.7: REQUIRED, 3.0: REQUIRED, 3.1: DONE, 3.2: DONE
----------------------------------------
```ruby
require 'rbconfig/sizeof'
char_bit = RbConfig::LIMITS["UCHAR_MAX"].bit_length
size_max = RbConfig::LIMITS["SIZE_MAX"]
size_bit_max = size_max * char_bit
1 << size_bit_max
```
The above code raises an "integer overflow" error.
```
-:5:in `<<': integer overflow: 4611686018427387905 * 4 > 18446744073709551615
(ArgumentError)
from -:5:in `<main>'
```
It doesn't seem like a proper or intentional exception.
--
https://bugs.ruby-lang.org/