Bug #19323
closed
Integer overflow in `Integer#<<`
Added by nobu (Nobuyoshi Nakada) almost 2 years ago.
Updated over 1 year ago.
Description
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.
- Status changed from Open to Closed
- Related to Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large added
- Backport changed from 2.7: REQUIRED, 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED to 2.7: REQUIRED, 3.0: REQUIRED, 3.1: DONE, 3.2: REQUIRED
backported into ruby_3_1
at 344249674f7a7835445a44695664897fa4b83f00
- 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.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0