Browse Source

test for fpu overflow

pierre 24 years ago
parent
commit
4a4d7cd40d
1 changed files with 28 additions and 0 deletions
  1. 28 0
      tests/test/tfpuover.pp

+ 28 - 0
tests/test/tfpuover.pp

@@ -0,0 +1,28 @@
+{$define FAIL}
+
+var
+  x1,y1,z : double;
+
+  function x : double;
+  begin
+    x :=((x1+y1)*(x1-y1))*((x1+y1)*(x1-y1));
+  end;
+  function y : double;
+  begin
+    y :=((x1*y1)/(x1+y1)){$ifdef FAIL}*((x1+y1)*(x1-y1)){$endif};
+  end;
+
+begin
+  x1:=2;
+  y1:=3;
+{ Explanation a addnote needs the same number of fpu regs
+  that the max fpu need of left and right node, unless
+  these two numbers are equal:
+  this is the reason of the symetric form of this test code PM }
+  z:=((((x+y)*(x-y))+((x+y)*(x-y)))+(((x+y)*(x-y))+((x+y)*(x-y)))+
+      (((x+y)*(x-y))+((x+y)*(x-y)))+(((x+y)*(x-y))+((x+y)*(x-y))))+
+     ((((x+y)*(x-y))+((x+y)*(x-y)))+(((x+y)*(x-y))+((x+y)*(x-y)))+
+      (((x+y)*(x-y))+((x+y)*(x-y)))+(((x+y)*(x-y))+((x+y)*(x-y))));
+  Writeln('z = ',z);
+end.
+