Browse Source

fcl-passrc: resolver: eopDivide

git-svn-id: trunk@35844 -
Mattias Gaertner 8 years ago
parent
commit
f93b706e82
2 changed files with 19 additions and 0 deletions
  1. 5 0
      packages/fcl-passrc/src/pasresolver.pp
  2. 14 0
      packages/fcl-passrc/tests/tcresolver.pas

+ 5 - 0
packages/fcl-passrc/src/pasresolver.pp

@@ -5954,6 +5954,11 @@ begin
             SetBaseType(btBoolean);
             exit;
             end;
+          eopDivide:
+            begin
+            SetBaseType(BaseTypeExtended);
+            exit;
+            end;
           end
         else if (RightResolved.BaseType=btSet) and (RightResolved.SubType in btAllInteger)
             and (Bin.OpCode=eopIn) then

+ 14 - 0
packages/fcl-passrc/tests/tcresolver.pas

@@ -2693,8 +2693,11 @@ begin
   Add('  i:=-j+k;');
   Add('  i:=j*k;');
   Add('  i:=j**k;');
+  Add('  i:=10**3;');
   Add('  i:=j div k;');
+  Add('  i:=10 div 3;');
   Add('  i:=j mod k;');
+  Add('  i:=10 mod 3;');
   Add('  i:=j shl k;');
   Add('  i:=j shr k;');
   Add('  i:=j and k;');
@@ -2753,6 +2756,7 @@ begin
   StartProgram(false);
   Add('var');
   Add('  i,j,k:double;');
+  Add('  o,p:longint;');
   Add('begin');
   Add('  i:=1;');
   Add('  i:=1+2;');
@@ -2764,8 +2768,18 @@ begin
   Add('  i:=j+k;');
   Add('  i:=-j+k;');
   Add('  i:=j*k;');
+  Add('  i:=10/3;');
+  Add('  i:=10.0/3;');
+  Add('  i:=10/3.0;');
+  Add('  i:=10.0/3.0;');
   Add('  i:=j/k;');
+  Add('  i:=o/p;');
+  Add('  i:=10**3;');
+  Add('  i:=10.0**3;');
+  Add('  i:=10.0**3.0;');
+  Add('  i:=10**3.0;');
   Add('  i:=j**k;');
+  Add('  i:=o**p;');
   Add('  i:=(j+k)/3;');
   ParseProgram;
 end;