* 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 -
This commit is contained in:
nickysn 2016-10-04 22:57:06 +00:00
parent acfe6d2f2c
commit f6356e03e4

View File

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