LP64: -0x10000000000000001 << -0x80000001

LP64 e$B4D6-$G!"e(B-0x10000000000000001 << -0x80000001 e$B$,e(B
RangeError e$B$K$J$j$^$9!#e(B

% ./ruby -ve ‘p(-0x10000000000000001 << -0x80000001)’
ruby 1.9.0 (2007-08-16 patchlevel 0) [x86_64-freebsd6.2]
-e:1:in <<': integer -2147483649 too small to convert toint’
(RangeError)
from -e:1:in `’

e$B$"$H!"e(B-3 << -0x4000000000000001 e$B$,e(B -2 e$B$K$J$j$^$9!#e(B

% ./ruby -ve ‘p(-3 << -0x4000000000000001)’
ruby 1.9.0 (2007-08-16 patchlevel 0) [x86_64-freebsd6.2]
-2