Browse Source

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

git-svn-id: trunk@47231 -
pierre 4 years ago
parent
commit
b8e6610617
1 changed files with 3 additions and 3 deletions
  1. 3 3
      compiler/aarch64/agcpugas.pas

+ 3 - 3
compiler/aarch64/agcpugas.pas

@@ -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;