* fixed collection of types from tai_*typedconst

git-svn-id: trunk@32469 -
This commit is contained in:
Jonas Maebe 2015-11-22 11:49:28 +00:00
parent c17458149c
commit e90af5d7c0

View File

@ -116,6 +116,7 @@ implementation
var
res: PHashSetItem;
begin
record_def(def);
res:=asmsymtypes.FindOrAdd(@sym,sizeof(sym));
{ due to internal aliases with different signatures, we may end up with
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);
var
value: tai_abstracttypedconst;
begin
case p.typ of
ait_llvmalias:
begin
record_def(taillvmalias(p).def);
record_asmsym_def(taillvmalias(p).newsym,taillvmalias(p).def,true);
end;
ait_llvmdecl:
begin
record_def(taillvmdecl(p).def);
record_asmsym_def(taillvmdecl(p).namesym,taillvmdecl(p).def,true);
collect_asmlist_info(deftypelist,taillvmdecl(p).initdata);
end;
ait_llvmins:
collect_llvmins_info(deftypelist,taillvm(p));
ait_typedconst:
begin
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;