Browse Source

* Fixed overflow error when calling align() with corner case values such as align($7FFFFFFC, 4) for the longint variant.

git-svn-id: trunk@39915 -
yury 6 năm trước cách đây
mục cha
commit
4860f3934a
1 tập tin đã thay đổi với 5 bổ sung5 xóa
  1. 5 5
      compiler/cutils.pas

+ 5 - 5
compiler/cutils.pas

@@ -346,9 +346,9 @@ implementation
         else
           begin
             if i<0 then
-              result:=((i-a+1) div a) * a
+              result:=((i+1-a) div a) * a
             else
-              result:=((i+a-1) div a) * a;
+              result:=((i-1+a) div a) * a;
           end;
       end;
 
@@ -364,9 +364,9 @@ implementation
         else
           begin
             if i<0 then
-              result:=((i-a+1) div a) * a
+              result:=((i+1-a) div a) * a
             else
-              result:=((i+a-1) div a) * a;
+              result:=((i-1+a) div a) * a;
           end;
       end;
 
@@ -380,7 +380,7 @@ implementation
         if a<=1 then
           result:=i
         else
-          result:=((i+a-1) div a) * a;
+          result:=((i-1+a) div a) * a;
       end;