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

FeepingCreature feepingcreature at gmail.com
Thu Aug 13 13:40:34 UTC 2020


On Thursday, 13 August 2020 at 13:33:19 UTC, bachmeier wrote:
> That's why that behavior needs to be changed as well. It's 
> horrible to implicitly cast from int to double when doing so 
> results in obviously wrong behavior. Hopefully there won't be 
> any more talk about safe by default as long as the language has 
> features like this that are obviously broken and trivially 
> fixed.

It's not trivially fixed. :-(

I added a check for this case in DMD, just to see, and it breaks 
Phobos all over. Anything that interfaces to C with more 
complicated struct types does division with mixed signs. There'd 
need to be a lot of casts added as a result of changing this.


More information about the Digitalmars-d mailing list