* check for 2gb limit when inserting record fields

This commit is contained in:
peter 2004-05-25 18:50:50 +00:00
parent 1d0a9955df
commit a1b8d8bf6b

View File

@ -974,7 +974,7 @@ implementation
procedure tabstractrecordsymtable.insertfield(sym : tvarsym;addsym:boolean);
var
l,
l : aint;
varalignrecord,
varalignfield,
varalign : longint;
@ -1020,7 +1020,13 @@ implementation
varalign:=size_2_align(l);
varalignfield:=used_align(varalign,aktalignment.recordalignmin,fieldalignment);
tvarsym(sym).fieldoffset:=align(datasize,varalignfield);
datasize:=tvarsym(sym).fieldoffset+l;
if (aword(l)+tvarsym(sym).fieldoffset)>high(aint) then
begin
Message(sym_e_segment_too_large);
datasize:=high(aint);
end
else
datasize:=tvarsym(sym).fieldoffset+l;
{ Calc alignment needed for this record }
if (usefieldalignment=-1) then
varalignrecord:=used_align(varalign,aktalignment.recordalignmin,aktalignment.maxCrecordalign)
@ -2307,7 +2313,10 @@ implementation
end.
{
$Log$
Revision 1.147 2004-05-23 20:56:14 peter
Revision 1.148 2004-05-25 18:50:50 peter
* check for 2gb limit when inserting record fields
Revision 1.147 2004/05/23 20:56:14 peter
* don't generate incompatible types when there is an errordef
Revision 1.146 2004/05/22 23:34:28 peter