Quellcode durchsuchen

* fixed range errors in case asizeint<>aint

git-svn-id: branches/jvmbackend@18411 -
Jonas Maebe vor 14 Jahren
Ursprung
Commit
87048f0cc8
2 geänderte Dateien mit 5 neuen und 5 gelöschten Zeilen
  1. 1 1
      compiler/symdef.pas
  2. 4 4
      compiler/symtable.pas

+ 1 - 1
compiler/symdef.pas

@@ -2584,7 +2584,7 @@ implementation
     constructor tarraydef.create_from_pointer(def:tdef);
       begin
          { use -1 so that the elecount will not overflow }
-         self.create(0,high(aint)-1,s32inttype);
+         self.create(0,high(asizeint)-1,s32inttype);
          arrayoptions:=[ado_IsConvertedPointer];
          setelementdef(def);
       end;

+ 4 - 4
compiler/symtable.pas

@@ -1020,7 +1020,7 @@ implementation
         if l>high(asizeint)-sym.fieldoffset then
           begin
             Message(sym_e_segment_too_large);
-            _datasize:=high(aint);
+            _datasize:=high(asizeint);
           end
         else
           _datasize:=sym.fieldoffset+l;
@@ -1194,8 +1194,8 @@ implementation
                 if bitsize>high(asizeint)-databitsize then
                   begin
                     Message(sym_e_segment_too_large);
-                    _datasize:=high(aint);
-                    databitsize:=high(aint);
+                    _datasize:=high(asizeint);
+                    databitsize:=high(asizeint);
                   end
                 else
                   begin
@@ -1210,7 +1210,7 @@ implementation
                 if tfieldvarsym(sym).getsize>high(asizeint)-_datasize then
                   begin
                     Message(sym_e_segment_too_large);
-                    _datasize:=high(aint);
+                    _datasize:=high(asizeint);
                   end
                 else
                   _datasize:=tfieldvarsym(sym).fieldoffset+offset;