+ extend tstoredsymtable with method register_children to register all its symbols and defs

git-svn-id: trunk@37339 -
This commit is contained in:
svenbarth 2017-09-27 20:27:05 +00:00
parent ddf91a4d19
commit b322339758

View File

@ -42,6 +42,8 @@ interface
procedure _needs_init_final(sym:TObject;arg:pointer);
procedure check_forward(sym:TObject;arg:pointer);
procedure check_block_valid(def: TObject;arg:pointer);
procedure register_defs(def:tobject;arg:pointer);
procedure register_syms(sym:tobject;arg:pointer);
procedure labeldefined(sym:TObject;arg:pointer);
procedure varsymbolused(sym:TObject;arg:pointer);
procedure TestPrivate(sym:TObject;arg:pointer);
@ -70,6 +72,7 @@ interface
procedure checklabels;
function needs_init_final : boolean;
procedure testfordefaultproperty(sym:TObject;arg:pointer);
procedure register_children;
end;
{$ifdef llvm}
@ -872,6 +875,18 @@ implementation
end;
procedure tstoredsymtable.register_syms(sym:tobject;arg:pointer);
begin
tsym(sym).register_sym;
end;
procedure tstoredsymtable.register_defs(def:tobject;arg:pointer);
begin
tdef(def).register_def;
end;
procedure TStoredSymtable.labeldefined(sym:TObject;arg:pointer);
begin
if (tsym(sym).typ=labelsym) and
@ -1011,6 +1026,13 @@ implementation
end;
procedure tstoredsymtable.register_children;
begin
SymList.ForEachCall(@register_syms,nil);
DefList.ForEachCall(@register_defs,nil);
end;
{***********************************************
Process all entries
***********************************************}