Browse Source

*** empty log message ***

daniel 26 years ago
parent
commit
bf3fc7b96d
1 changed files with 14 additions and 6 deletions
  1. 14 6
      compiler/symdef.inc

+ 14 - 6
compiler/symdef.inc

@@ -1790,11 +1790,16 @@
 
 
     function tarraydef.size : longint;
     function tarraydef.size : longint;
       begin
       begin
-         { dirty hack to overcome an overflow (PFV) }
-         if highrange=$7fffffff then
-          size:=$7fffffff
-         else
-          size:=(highrange-lowrange+1)*elesize;
+        {Tarraydef.size may never be called for an open array!}
+        if highrange<lowrange then
+            internalerror($99080501);
+        If (highrange-lowrange = $7fffffff) or
+           (($7fffffff div elesize + elesize -1) < (highrange - lowrange)) Then
+          Begin
+            message(sym_segment_too_large);
+            size := 4
+          End
+        Else size:=(highrange-lowrange+1)*elesize;
       end;
       end;
 
 
 
 
@@ -3585,7 +3590,10 @@ Const local_symtable_index : longint = $8001;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.141  1999-08-05 16:53:13  peter
+  Revision 1.142  1999-08-05 22:41:34  daniel
+  *** empty log message ***
+
+  Revision 1.141  1999/08/05 16:53:13  peter
     * V_Fatal=1, all other V_ are also increased
     * V_Fatal=1, all other V_ are also increased
     * Check for local procedure when assigning procvar
     * Check for local procedure when assigning procvar
     * fixed comment parsing because directives
     * fixed comment parsing because directives