A strange div bug on Linux x86_64, (both dmd & ldc2): long -5000 / size_t 2 = 9223372036854773308

H. S. Teoh hsteoh at quickfur.ath.cx
Thu Aug 13 19:03:38 UTC 2020


On Thu, Aug 13, 2020 at 06:51:09PM +0000, mw via Digitalmars-d wrote:
> On Thursday, 13 August 2020 at 18:40:40 UTC, matheus wrote:
> > On Thursday, 13 August 2020 at 13:33:19 UTC, bachmeier wrote:
> > > ...
> > > The source of wrong behavior is vec.length having type ulong. It
> > > would be very unusual for someone to even think about that.
> > 
> > May I ask what type should it be?
> 
> Signed (size_t, the length of the machine's address space)
[...]

size_t is unsigned, because the address space of a 64-bit machine is
2^64, but a signed value would only be able to address half of that
space (2^63).


T

-- 
Bomb technician: If I'm running, try to keep up.


More information about the Digitalmars-d mailing list