I was trying the lazarus example
(Numerics055.zip\Demos\Lazarus\PiBench\PiBench.lpr)
for this library:
http://sergworks.wordpress.com/2013/12/20/numerics-0-55-released/Everything worked fine and it ran perfectly.
But if I set the optimisation level project settings to -O2 or -O3 FPC refuses to compile the example
and gives me this error:
...\Numerics055\Source\Pascal\Numerics.pas(1085,1) Fatal: Internal error 200410231
This is where the error happens in the Numerics.pas file:
class function BigCardinal.DivRem(const Dividend: BigCardinal;
Divisor: Cardinal; var Remainder: Cardinal): BigCardinal;
begin
HResCheck(Dividend.FNumber.DivRemLimbU(Divisor, Result.FNumber, Remainder));
end;
class function BigCardinal.DivRem(const Dividend: Cardinal;
Divisor: BigCardinal; var Remainder: Cardinal): Cardinal;
begin {error on this line}
HResCheck(Divisor.FNumber.DivRemLimbU2(Dividend, Result, Remainder));
end;
class operator BigCardinal.IntDivide(const A: BigCardinal; const B: Cardinal): BigCardinal;
var
Remainder: Cardinal;
begin
HResCheck(A.FNumber.DivRemLimbU(B, Result.FNumber, Remainder));
end;
This file is part of the library itself, not the example.
What might cause this error? is there a way to solve this besides not using level 2 or 3 optimisations?
I am using 32-bit lazarus 1.2.2 and FPC 2.6.4 on 64-bit Windows 7