www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - "shift by 64 is outside the range 0..31" dmd x64

reply "sdv" <sdvcn 126.com> writes:
ulong vv = 1 << 60 ;


"Error: shift by 60 is outside the range 0..31" ??
Jul 09 2015
parent reply "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> writes:
On Thursday, 9 July 2015 at 09:57:16 UTC, sdv wrote:
 ulong vv = 1 << 60 ;


 "Error: shift by 60 is outside the range 0..31" ??
Try: ulong vv = 1UL << 60; Integer literals are of type `int` by default. The compiler does sometimes use type information in variable initializations, it could potentially do that in this case, too. If you want, you can file an enhancement request here: https://issues.dlang.org/
Jul 09 2015
parent "sdv" <sdvcn 126.com> writes:
On Thursday, 9 July 2015 at 10:05:12 UTC, Marc Sch├╝tz wrote:
 On Thursday, 9 July 2015 at 09:57:16 UTC, sdv wrote:
 ulong vv = 1 << 60 ;


 "Error: shift by 60 is outside the range 0..31" ??
Try: ulong vv = 1UL << 60; Integer literals are of type `int` by default. The compiler does sometimes use type information in variable initializations, it could potentially do that in this case, too. If you want, you can file an enhancement request here: https://issues.dlang.org/
Thank you very much !
Jul 09 2015