mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 07:06:08 +02:00
* record rather than immediately append encountered defs, so that we don't
emit the same def multiple times git-svn-id: trunk@32162 -
This commit is contained in:
parent
0fc9148784
commit
d7bda793f2
@ -180,7 +180,7 @@ implementation
|
|||||||
for opidx:=0 to p.ops-1 do
|
for opidx:=0 to p.ops-1 do
|
||||||
case p.oper[opidx]^.typ of
|
case p.oper[opidx]^.typ of
|
||||||
top_def:
|
top_def:
|
||||||
appenddef(deftypelist,p.oper[opidx]^.def);
|
record_def(p.oper[opidx]^.def);
|
||||||
top_tai:
|
top_tai:
|
||||||
collect_tai_info(deftypelist,p.oper[opidx]^.ai);
|
collect_tai_info(deftypelist,p.oper[opidx]^.ai);
|
||||||
top_ref:
|
top_ref:
|
||||||
@ -201,7 +201,7 @@ implementation
|
|||||||
for paraidx:=0 to p.oper[opidx]^.paras.count-1 do
|
for paraidx:=0 to p.oper[opidx]^.paras.count-1 do
|
||||||
begin
|
begin
|
||||||
callpara:=pllvmcallpara(p.oper[opidx]^.paras[paraidx]);
|
callpara:=pllvmcallpara(p.oper[opidx]^.paras[paraidx]);
|
||||||
appenddef(deftypelist,callpara^.def);
|
record_def(callpara^.def);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -212,19 +212,21 @@ implementation
|
|||||||
case p.typ of
|
case p.typ of
|
||||||
ait_llvmalias:
|
ait_llvmalias:
|
||||||
begin
|
begin
|
||||||
appenddef(deftypelist,taillvmalias(p).def);
|
record_def(taillvmalias(p).def);
|
||||||
record_asmsym_def(taillvmalias(p).newsym,taillvmalias(p).def,true);
|
record_asmsym_def(taillvmalias(p).newsym,taillvmalias(p).def,true);
|
||||||
end;
|
end;
|
||||||
ait_llvmdecl:
|
ait_llvmdecl:
|
||||||
begin
|
begin
|
||||||
appenddef(deftypelist,taillvmdecl(p).def);
|
if taillvmdecl(p).namesym.Name='\01_U_$OBJPAS_$$_EXCEPTIONCLASS' then
|
||||||
|
writeln('here');
|
||||||
|
record_def(taillvmdecl(p).def);
|
||||||
record_asmsym_def(taillvmdecl(p).namesym,taillvmdecl(p).def,true);
|
record_asmsym_def(taillvmdecl(p).namesym,taillvmdecl(p).def,true);
|
||||||
collect_asmlist_info(deftypelist,taillvmdecl(p).initdata);
|
collect_asmlist_info(deftypelist,taillvmdecl(p).initdata);
|
||||||
end;
|
end;
|
||||||
ait_llvmins:
|
ait_llvmins:
|
||||||
collect_llvmins_info(deftypelist,taillvm(p));
|
collect_llvmins_info(deftypelist,taillvm(p));
|
||||||
ait_typedconst:
|
ait_typedconst:
|
||||||
appenddef(deftypelist,tai_abstracttypedconst(p).def);
|
record_def(tai_abstracttypedconst(p).def);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -472,7 +474,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
symdeflist:=tabstractrecordsymtable(def.symtable).llvmst.symdeflist;
|
symdeflist:=tabstractrecordsymtable(def.symtable).llvmst.symdeflist;
|
||||||
for i:=0 to symdeflist.Count-1 do
|
for i:=0 to symdeflist.Count-1 do
|
||||||
appenddef(list,tllvmshadowsymtableentry(symdeflist[i]).def);
|
record_def(tllvmshadowsymtableentry(symdeflist[i]).def);
|
||||||
if assigned(def.typesym) then
|
if assigned(def.typesym) then
|
||||||
list.concat(taillvm.op_size(LA_TYPE,record_def(def)));
|
list.concat(taillvm.op_size(LA_TYPE,record_def(def)));
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user