mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 07:49:10 +02:00
* fixed compile
This commit is contained in:
parent
b0afe9a351
commit
338155d396
@ -771,7 +771,10 @@ var S: string;
|
|||||||
begin
|
begin
|
||||||
case Typ of
|
case Typ of
|
||||||
abstractsym : S:='abst';
|
abstractsym : S:='abst';
|
||||||
varsym : S:='var';
|
fieldvarsym : S:='member';
|
||||||
|
globalvarsym,
|
||||||
|
localvarsym,
|
||||||
|
paravarsym : S:='var';
|
||||||
typesym : S:='type';
|
typesym : S:='type';
|
||||||
procsym : if VType=nil then
|
procsym : if VType=nil then
|
||||||
S:='proc'
|
S:='proc'
|
||||||
@ -784,7 +787,7 @@ begin
|
|||||||
errorsym : S:='error';
|
errorsym : S:='error';
|
||||||
syssym : S:='sys';
|
syssym : S:='sys';
|
||||||
labelsym : S:='label';
|
labelsym : S:='label';
|
||||||
absolutesym : S:='abs';
|
absolutevarsym : S:='abs';
|
||||||
propertysym : S:='prop';
|
propertysym : S:='prop';
|
||||||
macrosym : S:='macro';
|
macrosym : S:='macro';
|
||||||
else S:='';
|
else S:='';
|
||||||
@ -1431,8 +1434,10 @@ end;
|
|||||||
begin
|
begin
|
||||||
New(Symbol, Init(Sym.Name,Sym.Typ,'',nil));
|
New(Symbol, Init(Sym.Name,Sym.Typ,'',nil));
|
||||||
case Sym.Typ of
|
case Sym.Typ of
|
||||||
varsym :
|
globalvarsym,
|
||||||
with tvarsym(sym) do
|
localvarsym,
|
||||||
|
paravarsym :
|
||||||
|
with tabstractvarsym(sym) do
|
||||||
begin
|
begin
|
||||||
if assigned(vartype.def) then
|
if assigned(vartype.def) then
|
||||||
if assigned(vartype.def.typesym) then
|
if assigned(vartype.def.typesym) then
|
||||||
@ -1447,13 +1452,15 @@ end;
|
|||||||
Symbol^.Flags:=(Symbol^.Flags or sfPointer);
|
Symbol^.Flags:=(Symbol^.Flags or sfPointer);
|
||||||
Symbol^.RelatedTypeID:=Ptrint(tpointerdef(vartype.def).pointertype.def);
|
Symbol^.RelatedTypeID:=Ptrint(tpointerdef(vartype.def).pointertype.def);
|
||||||
end;
|
end;
|
||||||
if Table.symtabletype in [recordsymtable,objectsymtable] then
|
if typ=fieldvarsym then
|
||||||
MemInfo.Addr:=fieldoffset
|
MemInfo.Addr:=tfieldvarsym(sym).fieldoffset
|
||||||
else
|
else
|
||||||
if localloc.loc=LOC_REFERENCE then
|
begin
|
||||||
MemInfo.Addr:=localloc.reference.offset
|
if tabstractnormalvarsym(sym).localloc.loc=LOC_REFERENCE then
|
||||||
|
MemInfo.Addr:=tabstractnormalvarsym(sym).localloc.reference.offset
|
||||||
else
|
else
|
||||||
MemInfo.Addr:=0;
|
MemInfo.Addr:=0;
|
||||||
|
end;
|
||||||
if assigned(vartype.def) and (vartype.def.deftype=arraydef) then
|
if assigned(vartype.def) and (vartype.def.deftype=arraydef) then
|
||||||
begin
|
begin
|
||||||
if tarraydef(vartype.def).highrange<tarraydef(vartype.def).lowrange then
|
if tarraydef(vartype.def).highrange<tarraydef(vartype.def).lowrange then
|
||||||
@ -1467,6 +1474,20 @@ end;
|
|||||||
MemInfo.PushSize:=paramanager.push_size(varspez,vartype.def,pocall_default);
|
MemInfo.PushSize:=paramanager.push_size(varspez,vartype.def,pocall_default);
|
||||||
Symbol^.SetMemInfo(MemInfo);
|
Symbol^.SetMemInfo(MemInfo);
|
||||||
end;
|
end;
|
||||||
|
fieldvarsym :
|
||||||
|
with tfieldvarsym(sym) do
|
||||||
|
begin
|
||||||
|
if assigned(vartype.def) and (vartype.def.deftype=arraydef) then
|
||||||
|
begin
|
||||||
|
if tarraydef(vartype.def).highrange<tarraydef(vartype.def).lowrange then
|
||||||
|
MemInfo.Size:=-1
|
||||||
|
else
|
||||||
|
MemInfo.Size:=getsize;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
MemInfo.Size:=getsize;
|
||||||
|
Symbol^.SetMemInfo(MemInfo);
|
||||||
|
end;
|
||||||
constsym :
|
constsym :
|
||||||
SetDType(Symbol,GetConstValueName(tconstsym(sym)));
|
SetDType(Symbol,GetConstValueName(tconstsym(sym)));
|
||||||
enumsym :
|
enumsym :
|
||||||
@ -1690,7 +1711,7 @@ begin
|
|||||||
C^.Insert(P);
|
C^.Insert(P);
|
||||||
if (P^.typ=typesym) then
|
if (P^.typ=typesym) then
|
||||||
D^.Insert(P);
|
D^.Insert(P);
|
||||||
if (P^.typ=varsym) and ((P^.flags and sfPointer)<>0) then
|
if (P^.typ in [globalvarsym,localvarsym,paravarsym]) and ((P^.flags and sfPointer)<>0) then
|
||||||
E^.Insert(P);
|
E^.Insert(P);
|
||||||
if P^.Items<>nil then
|
if P^.Items<>nil then
|
||||||
InsertSymbolCollection(P^.Items);
|
InsertSymbolCollection(P^.Items);
|
||||||
@ -2122,7 +2143,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.40 2004-10-14 16:53:26 mazen
|
Revision 1.41 2004-11-09 16:46:05 peter
|
||||||
|
* fixed compile
|
||||||
|
|
||||||
|
Revision 1.40 2004/10/14 16:53:26 mazen
|
||||||
* use SysUtils unit instead of Dos Unit
|
* use SysUtils unit instead of Dos Unit
|
||||||
+ overload Replace to use AnsiString
|
+ overload Replace to use AnsiString
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user