2
0
Эх сурвалжийг харах

* use aluuinttype, instead of sinttype, when emitting TableCount and InitCount
for the InitFinalTable, because they are declared as ALUUInt in the RTL and
sinttype doesn't always correspond to the ALU size (it differs on platforms
with the combination of a 64-bit ALU and 32-bit address space)

git-svn-id: trunk@34629 -

nickysn 8 жил өмнө
parent
commit
f6356e03e4
1 өөрчлөгдсөн 3 нэмэгдсэн , 3 устгасан
  1. 3 3
      compiler/ngenutil.pas

+ 3 - 3
compiler/ngenutil.pas

@@ -962,9 +962,9 @@ implementation
         targetinfos[target_info.system]^.alignment.recordalignmin,
         targetinfos[target_info.system]^.alignment.maxCrecordalign);
       { placeholder for tablecount }
-      tablecountplaceholder:=unitinits.emit_placeholder(sinttype);
+      tablecountplaceholder:=unitinits.emit_placeholder(aluuinttype);
       { initcount (initialised at run time }
-      unitinits.emit_ord_const(0,sinttype);
+      unitinits.emit_ord_const(0,aluuinttype);
       count:=0;
       hp:=tused_unit(usedunits.first);
       while assigned(hp) do
@@ -1023,7 +1023,7 @@ implementation
           inc(count);
         end;
       { fill in tablecount }
-      tablecountplaceholder.replace(tai_const.Create_aint(count),sinttype);
+      tablecountplaceholder.replace(tai_const.Create_aint(count),aluuinttype);
       tablecountplaceholder.free;
       { Add to data segment }