Răsfoiți Sursa

--- Merging r14100 into '.':
U compiler/pdecvar.pas

git-svn-id: branches/fixes_2_4@14304 -

marco 15 ani în urmă
părinte
comite
e51bab4f4f
1 a modificat fișierele cu 7 adăugiri și 3 ștergeri
  1. 7 3
      compiler/pdecvar.pas

+ 7 - 3
compiler/pdecvar.pas

@@ -985,6 +985,9 @@ implementation
           abssym : tabsolutevarsym;
           pt,hp  : tnode;
           st     : tsymtable;
+          {$ifdef i386}
+          tmpaddr : int64;
+          {$endif}
         begin
           abssym:=nil;
           { only allowed for one var }
@@ -1034,11 +1037,12 @@ implementation
                   pt:=expr;
                   if is_constintnode(pt) then
                     begin
-                      if (Tordconstnode(pt).value<int64(low(abssym.addroffset))) or
-                         (Tordconstnode(pt).value>int64(high(abssym.addroffset))) then
+                      tmpaddr:=abssym.addroffset shl 4+tordconstnode(pt).value.svalue;
+                      if (tmpaddr<int64(low(abssym.addroffset))) or
+                         (tmpaddr>int64(high(abssym.addroffset))) then
                         message(parser_e_range_check_error)
                       else
-                        abssym.addroffset:=abssym.addroffset shl 4+tordconstnode(pt).value.svalue;
+                        abssym.addroffset:=tmpaddr;
                       abssym.absseg:=true;
                     end
                   else