diff --git a/compiler/omfbase.pas b/compiler/omfbase.pas index 7443c15351..5d228840e6 100644 --- a/compiler/omfbase.pas +++ b/compiler/omfbase.pas @@ -835,9 +835,22 @@ implementation { TOmfRecord_GRPDEF } procedure TOmfRecord_GRPDEF.DecodeFrom(RawRecord: TOmfRawRecord); + var + NextOfs: Integer; + Segment: Integer; begin - {TODO: implement} - internalerror(2015040101); + if RawRecord.RecordType<>RT_GRPDEF then + internalerror(2015040301); + NextOfs:=RawRecord.ReadIndexedRef(0,FGroupNameIndex); + SetLength(FSegmentList,0); + while NextOfs$ff then + internalerror(2015040901); + NextOfs:=RawRecord.ReadIndexedRef(NextOfs+1,Segment); + SetLength(FSegmentList,Length(FSegmentList)+1); + FSegmentList[High(FSegmentList)]:=Segment; + end; end; procedure TOmfRecord_GRPDEF.EncodeTo(RawRecord: TOmfRawRecord);