mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 11:49:23 +02:00
* avoid spurious range errors due to longint+qword expressions (results in
both values getting converted to a qword, which causes a range error in case the longint is smaller than 0) git-svn-id: trunk@21621 -
This commit is contained in:
parent
46d98a1f4e
commit
313e976256
@ -1038,8 +1038,11 @@ implementation
|
||||
begin
|
||||
currsym:=objdata.symbolref(ref^.symbol);
|
||||
l:=ref^.offset;
|
||||
{$push}
|
||||
{$r-}
|
||||
if assigned(currsym) then
|
||||
inc(l,currsym.address);
|
||||
{$pop}
|
||||
{ when it is a forward jump we need to compensate the
|
||||
offset of the instruction since the previous time,
|
||||
because the symbol address is then still using the
|
||||
@ -2212,8 +2215,11 @@ implementation
|
||||
begin
|
||||
getvalsym(c-40);
|
||||
data:=currval-insend;
|
||||
{$push}
|
||||
{$r-}
|
||||
if assigned(currsym) then
|
||||
inc(data,currsym.address);
|
||||
{$pop}
|
||||
if (data>127) or (data<-128) then
|
||||
Message1(asmw_e_short_jmp_out_of_range,tostr(data));
|
||||
objdata.writebytes(data,1);
|
||||
|
Loading…
Reference in New Issue
Block a user