mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-07 11:59:27 +01:00
* fixed collection of types from tai_*typedconst
git-svn-id: trunk@32469 -
This commit is contained in:
parent
c17458149c
commit
e90af5d7c0
@ -116,6 +116,7 @@ implementation
|
|||||||
var
|
var
|
||||||
res: PHashSetItem;
|
res: PHashSetItem;
|
||||||
begin
|
begin
|
||||||
|
record_def(def);
|
||||||
res:=asmsymtypes.FindOrAdd(@sym,sizeof(sym));
|
res:=asmsymtypes.FindOrAdd(@sym,sizeof(sym));
|
||||||
{ due to internal aliases with different signatures, we may end up with
|
{ due to internal aliases with different signatures, we may end up with
|
||||||
multiple defs for the same symbol -> use the one from the declaration,
|
multiple defs for the same symbol -> use the one from the declaration,
|
||||||
@ -209,23 +210,32 @@ implementation
|
|||||||
|
|
||||||
|
|
||||||
procedure TLLVMTypeInfo.collect_tai_info(deftypelist: tasmlist; p: tai);
|
procedure TLLVMTypeInfo.collect_tai_info(deftypelist: tasmlist; p: tai);
|
||||||
|
var
|
||||||
|
value: tai_abstracttypedconst;
|
||||||
begin
|
begin
|
||||||
case p.typ of
|
case p.typ of
|
||||||
ait_llvmalias:
|
ait_llvmalias:
|
||||||
begin
|
begin
|
||||||
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
|
||||||
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:
|
||||||
|
begin
|
||||||
record_def(tai_abstracttypedconst(p).def);
|
record_def(tai_abstracttypedconst(p).def);
|
||||||
|
case tai_abstracttypedconst(p).adetyp of
|
||||||
|
tck_simple:
|
||||||
|
collect_tai_info(deftypelist,tai_simpletypedconst(p).val);
|
||||||
|
tck_array,tck_record:
|
||||||
|
for value in tai_aggregatetypedconst(p) do
|
||||||
|
collect_tai_info(deftypelist,value);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user