Brad Roberts wrote:
On 10/25/2010 8:58 PM, Walter Bright wrote:
Don Clugston wrote:
We have an OSX-only failure, which I think is a compiler bug.
It's failing in std.bigint, which only imports
std.internal.math.biguintCore and std.internal.math.bignumX86.
There's no dependency on anything else in Phobos, so it ought to be
pretty easy to reduce.
I can't reduce it, because I don't have OSX.

The failing test is this one:
    assert(BigInt(0x1234_5678_9ABC_5A5AL).toLong() == 0x1234_5678_9ABC_5A5AL);

This is blocking a release.

Found the problem - you're right, it's a compiler bug. A bad one. Oops!

An osx specific problem?

Doing a signed long compare calls a function in llmath.d. That function is the only one that returns its result in the flags. In OSX, the stack must always be aligned on 16 bytes when a function is called. The alignment is done by adding/subtracting from ESP, which resets the flags. Oops! The solution was to just inline the comparison code.
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to