mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-13 23:13:30 +02:00
* check for 2gb limit when inserting record fields
This commit is contained in:
parent
1d0a9955df
commit
a1b8d8bf6b
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user