mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 20:09:27 +02:00
+ added property to the omf object reader, specifying whether symbol names
should be case sensitive (on by default, for now) git-svn-id: trunk@32435 -
This commit is contained in:
parent
79336c59de
commit
b9ca24d4df
@ -147,6 +147,7 @@ interface
|
|||||||
FPubDefs: TFPHashObjectList;
|
FPubDefs: TFPHashObjectList;
|
||||||
FRawRecord: TOmfRawRecord;
|
FRawRecord: TOmfRawRecord;
|
||||||
FCaseSensitiveSegments: Boolean;
|
FCaseSensitiveSegments: Boolean;
|
||||||
|
FCaseSensitiveSymbols: Boolean;
|
||||||
|
|
||||||
function PeekNextRecordType: Byte;
|
function PeekNextRecordType: Byte;
|
||||||
|
|
||||||
@ -163,9 +164,10 @@ interface
|
|||||||
property ExtDefs: TFPHashObjectList read FExtDefs;
|
property ExtDefs: TFPHashObjectList read FExtDefs;
|
||||||
property PubDefs: TFPHashObjectList read FPubDefs;
|
property PubDefs: TFPHashObjectList read FPubDefs;
|
||||||
|
|
||||||
{ Specifies whether we're case sensitive in regards to segment, class, overlay and group names.
|
{ Specifies whether we're case sensitive in regards to segment, class, overlay and group names. }
|
||||||
Symbols (in EXTDEF and PUBDEF records) are always case sensitive, regardless of the value of this property. }
|
|
||||||
property CaseSensitiveSegments: Boolean read FCaseSensitiveSegments write FCaseSensitiveSegments;
|
property CaseSensitiveSegments: Boolean read FCaseSensitiveSegments write FCaseSensitiveSegments;
|
||||||
|
{ Specifies whether symbol names (in EXTDEF and PUBDEF records) are case sensitive. }
|
||||||
|
property CaseSensitiveSymbols: Boolean read FCaseSensitiveSymbols write FCaseSensitiveSymbols;
|
||||||
public
|
public
|
||||||
constructor create;override;
|
constructor create;override;
|
||||||
destructor destroy;override;
|
destructor destroy;override;
|
||||||
@ -1205,6 +1207,7 @@ implementation
|
|||||||
ExtDefElem: TOmfExternalNameElement;
|
ExtDefElem: TOmfExternalNameElement;
|
||||||
OldCount,NewCount,i: Integer;
|
OldCount,NewCount,i: Integer;
|
||||||
objsym: TObjSymbol;
|
objsym: TObjSymbol;
|
||||||
|
symname: TSymStr;
|
||||||
begin
|
begin
|
||||||
Result:=False;
|
Result:=False;
|
||||||
ExtDefRec:=TOmfRecord_EXTDEF.Create;
|
ExtDefRec:=TOmfRecord_EXTDEF.Create;
|
||||||
@ -1215,7 +1218,10 @@ implementation
|
|||||||
for i:=OldCount to NewCount-1 do
|
for i:=OldCount to NewCount-1 do
|
||||||
begin
|
begin
|
||||||
ExtDefElem:=TOmfExternalNameElement(ExtDefs[i]);
|
ExtDefElem:=TOmfExternalNameElement(ExtDefs[i]);
|
||||||
objsym:=objdata.CreateSymbol(ExtDefElem.Name);
|
symname:=ExtDefElem.Name;
|
||||||
|
if not CaseSensitiveSymbols then
|
||||||
|
symname:=UpCase(symname);
|
||||||
|
objsym:=objdata.CreateSymbol(symname);
|
||||||
objsym.bind:=AB_EXTERNAL;
|
objsym.bind:=AB_EXTERNAL;
|
||||||
objsym.typ:=AT_FUNCTION;
|
objsym.typ:=AT_FUNCTION;
|
||||||
objsym.objsection:=nil;
|
objsym.objsection:=nil;
|
||||||
@ -1234,6 +1240,7 @@ implementation
|
|||||||
basegroup: TObjSectionGroup;
|
basegroup: TObjSectionGroup;
|
||||||
objsym: TObjSymbol;
|
objsym: TObjSymbol;
|
||||||
objsec: TOmfObjSection;
|
objsec: TOmfObjSection;
|
||||||
|
symname: TSymStr;
|
||||||
begin
|
begin
|
||||||
Result:=False;
|
Result:=False;
|
||||||
PubDefRec:=TOmfRecord_PUBDEF.Create;
|
PubDefRec:=TOmfRecord_PUBDEF.Create;
|
||||||
@ -1267,7 +1274,10 @@ implementation
|
|||||||
for i:=OldCount to NewCount-1 do
|
for i:=OldCount to NewCount-1 do
|
||||||
begin
|
begin
|
||||||
PubDefElem:=TOmfPublicNameElement(PubDefs[i]);
|
PubDefElem:=TOmfPublicNameElement(PubDefs[i]);
|
||||||
objsym:=objdata.CreateSymbol(PubDefElem.Name);
|
symname:=PubDefElem.Name;
|
||||||
|
if not CaseSensitiveSymbols then
|
||||||
|
symname:=UpCase(symname);
|
||||||
|
objsym:=objdata.CreateSymbol(symname);
|
||||||
objsym.bind:=AB_GLOBAL;
|
objsym.bind:=AB_GLOBAL;
|
||||||
objsym.typ:=AT_FUNCTION;
|
objsym.typ:=AT_FUNCTION;
|
||||||
objsym.group:=basegroup;
|
objsym.group:=basegroup;
|
||||||
@ -1703,6 +1713,7 @@ implementation
|
|||||||
FPubDefs:=TFPHashObjectList.Create;
|
FPubDefs:=TFPHashObjectList.Create;
|
||||||
FRawRecord:=TOmfRawRecord.Create;
|
FRawRecord:=TOmfRawRecord.Create;
|
||||||
CaseSensitiveSegments:=False;
|
CaseSensitiveSegments:=False;
|
||||||
|
CaseSensitiveSymbols:=True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TOmfObjInput.destroy;
|
destructor TOmfObjInput.destroy;
|
||||||
|
Loading…
Reference in New Issue
Block a user