[Issue 16264] BigInt multiplication crashes on 64-bit (biguintnoasm.d(276): Range violation)

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Jul 11 19:15:54 PDT 2016


https://issues.dlang.org/show_bug.cgi?id=16264

--- Comment #3 from Kirill Kryukov <kkryukov at gmail.com> ---
Here is the reason 32-bit BigUint multiplication works:
std/internal/math/biguintcore.d has the following:

version(D_InlineAsm_X86)
{
    import std.internal.math.biguintx86;
}
else
{
    import std.internal.math.biguintnoasm;
}

So, 32-bit compile uses the seemingly correct std.internal.math.biguintx86. On
the other hand, 64-bit compile uses std.internal.math.biguintnoasm - buggy,
untested and apparently never used in the real world.

--


More information about the Digitalmars-d-bugs mailing list