Add explicit longint typecast to avoid range check errors with unwindrec longword variable

git-svn-id: trunk@47231 -
This commit is contained in:
pierre 2020-10-28 09:46:02 +00:00
parent 1fdf940d0b
commit b8e6610617

View File

@ -413,7 +413,7 @@ unit agcpugas;
unwindrec:=unwindrec or ((unwinddata.size div 4) shl 27);
{ exception record headers }
tmplist.concat(tai_const.Create_32bit(unwindrec));
tmplist.concat(tai_const.Create_32bit(longint(unwindrec)));
if cs_asm_source in init_settings.globalswitches then
tmplist.concat(tai_comment.create(strpnew(hexstr(unwindrec,8))));
@ -424,7 +424,7 @@ unit agcpugas;
if unwinddata.size div 4>255 then
comment(V_Error,'Too many unwind codes for SEH');
unwindrec:=(unwinddata.size div 4) shl 16;
tmplist.concat(tai_const.create_32bit(unwindrec));
tmplist.concat(tai_const.create_32bit(longint(unwindrec)));
if cs_asm_source in init_settings.globalswitches then
tmplist.concat(tai_comment.create(strpnew(hexstr(unwindrec,8))));
end;
@ -434,7 +434,7 @@ unit agcpugas;
while unwinddata.pos<unwinddata.size do
begin
unwinddata.read(unwindrec,sizeof(longword));
tmplist.concat(tai_const.Create_32bit(unwindrec));
tmplist.concat(tai_const.Create_32bit(longint(unwindrec)));
if cs_asm_source in init_settings.globalswitches then
tmplist.concat(tai_comment.create(strpnew(hexstr(unwindrec,8))));
end;