program intpow;
{$apptype console}
{$mode delphi}

uses sysutils, math;
var
  x,d: double;
begin
{$ifdef FPC_HAS_TYPE_DOUBLE}
  writeln('Spurious overflows in intpower');
  try
    d := 10;
    x := intpower(d,-314);
    writeln('10^(-314) = ',x); //should be 1e-315
  except
    on E: Exception do
      begin
        writeln('10^(-314) (should be 1e-314): ', E.Message);
        halt(1);
      end;
  end;
  try
    d := 2;
    x := intpower(d,-2000);
    writeln('2^(-2000) = ',x); //should be 0
  except
    on E: Exception do
      begin
        writeln(' 0.5^2000 (should be 0) : ', E.Message);
        halt(1);
      end;
  end;
  writeln('ok');
{$endif FPC_HAS_TYPE_DOUBLE}
end.