Просмотр исходного кода

* fix 32 bit => 64 bit cross compilation, resolves #41626

florian 2 месяцев назад
Родитель
Сommit
de46b06f27
1 измененных файлов с 22 добавлено и 14 удалено
  1. 22 14
      compiler/ncon.pas

+ 22 - 14
compiler/ncon.pas

@@ -1463,33 +1463,41 @@ implementation
 
     function tsetconstnode.low: AInt;
       var
-        i: AInt;
+        i: ASizeInt;
       begin
         result:=0;
         if not(assigned(value_set)) then
           exit;
-        for i:=0 to tsetdef(resultdef).setmax do
-          if i in value_set^ then
-            begin
-              result:=i;
-              exit;
-            end;
+        i:=0;
+        while i<=tsetdef(resultdef).setmax do
+          begin
+            if i in value_set^ then
+              begin
+                result:=i;
+                exit;
+              end;
+            inc(i);
+          end;
       end;
 
 
     function tsetconstnode.high: AInt;
       var
-        i: AInt;
+        i: ASizeInt;
       begin
         result:=0;
         if not(assigned(value_set)) then
           exit;
-        for i:=tsetdef(resultdef).setmax downto tsetdef(resultdef).setbase do
-          if i in value_set^ then
-            begin
-              result:=i;
-              exit;
-            end;
+        i:=tsetdef(resultdef).setmax;
+        while i>=tsetdef(resultdef).setbase do
+          begin
+            if i in value_set^ then
+              begin
+                result:=i;
+                exit;
+              end;
+            dec(i);
+          end;
       end;