Bladeren bron

* fixed parsing of "var x: <type> absolute <value>;" on 64 bit platforms
(tests/tbs/tb0350)

git-svn-id: trunk@12715 -

Jonas Maebe 16 jaren geleden
bovenliggende
commit
9b790edd4f
1 gewijzigde bestanden met toevoegingen van 6 en 0 verwijderingen
  1. 6 0
      compiler/pdecvar.pas

+ 6 - 0
compiler/pdecvar.pas

@@ -1017,10 +1017,16 @@ implementation
               abssym:=tabsolutevarsym.create(vs.realname,vs.vardef);
               abssym.fileinfo:=vs.fileinfo;
               abssym.abstyp:=toaddr;
+{$ifndef cpu64bitaddr}
+              { on 64 bit systems, abssym.addroffset is a qword and hence this
+                test is useless (value is a 64 bit entity) and will always fail
+                for positive values (since int64(high(abssym.addroffset))=-1
+              }
               if (Tordconstnode(pt).value<int64(low(abssym.addroffset))) or
                  (Tordconstnode(pt).value>int64(high(abssym.addroffset))) then
                 message(parser_e_range_check_error)
               else
+{$endif}
                 abssym.addroffset:=Tordconstnode(pt).value.svalue;
 {$ifdef i386}
               abssym.absseg:=false;