|
@@ -79,6 +79,8 @@ interface
|
|
|
procedure appendsym_const(list:TAsmList;sym:tconstsym);override;
|
|
|
procedure appendsym_absolute(list:TAsmList;sym:tabsolutevarsym);override;
|
|
|
|
|
|
+ procedure afterappenddef(list: TAsmList; def: tdef); override;
|
|
|
+
|
|
|
procedure enum_membersyms_callback(p:TObject;arg:pointer);
|
|
|
|
|
|
procedure collect_llvmins_info(deftypelist: tasmlist; p: taillvm);
|
|
@@ -561,7 +563,6 @@ implementation
|
|
|
|
|
|
procedure TLLVMTypeInfo.appenddef_array(list:TAsmList;def:tarraydef);
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
appenddef(list,def.elementdef);
|
|
|
end;
|
|
|
|
|
@@ -571,7 +572,6 @@ implementation
|
|
|
symdeflist: tfpobjectlist;
|
|
|
i: longint;
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
symdeflist:=tabstractrecordsymtable(def.symtable).llvmst.symdeflist;
|
|
|
for i:=0 to symdeflist.Count-1 do
|
|
|
record_def(tllvmshadowsymtableentry(symdeflist[i]).def);
|
|
@@ -587,7 +587,6 @@ implementation
|
|
|
|
|
|
procedure TLLVMTypeInfo.appenddef_pointer(list:TAsmList;def:tpointerdef);
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
appenddef(list,def.pointeddef);
|
|
|
end;
|
|
|
|
|
@@ -596,7 +595,6 @@ implementation
|
|
|
var
|
|
|
i: longint;
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
{ todo: handle mantis #25551; there is no way to create a symbolic
|
|
|
la_type for a procvardef (unless it's a procedure of object/record),
|
|
|
which means that recursive references should become plain "procedure"
|
|
@@ -664,6 +662,12 @@ implementation
|
|
|
appenddef(list,sym.vardef);
|
|
|
end;
|
|
|
|
|
|
+ procedure TLLVMTypeInfo.afterappenddef(list: TAsmList; def: tdef);
|
|
|
+ begin
|
|
|
+ record_def(def);
|
|
|
+ inherited;
|
|
|
+ end;
|
|
|
+
|
|
|
|
|
|
procedure TLLVMTypeInfo.inserttypeinfo;
|
|
|
|
|
@@ -771,7 +775,6 @@ implementation
|
|
|
begin
|
|
|
if is_interface(def) then
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
record_def(def.vmt_def);
|
|
|
end
|
|
|
else
|
|
@@ -781,7 +784,6 @@ implementation
|
|
|
|
|
|
procedure TLLVMTypeInfo.appenddef_classref(list: TAsmList; def: tclassrefdef);
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
{ can also be an objcclass, which doesn't have a vmt }
|
|
|
if is_class(tclassrefdef(def).pointeddef) then
|
|
|
record_def(tobjectdef(tclassrefdef(def).pointeddef).vmt_def);
|
|
@@ -790,14 +792,12 @@ implementation
|
|
|
|
|
|
procedure TLLVMTypeInfo.appenddef_variant(list:TAsmList;def: tvariantdef);
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
appenddef(list,tabstractrecorddef(search_system_type('TVARDATA').typedef));
|
|
|
end;
|
|
|
|
|
|
|
|
|
- procedure TLLVMTypeInfo.appenddef_file(list:TAsmList;def:tfiledef);
|
|
|
+ procedure TLLVMTypeInfo.appenddef_file(list: TasmList; def: tfiledef);
|
|
|
begin
|
|
|
- record_def(def);
|
|
|
case tfiledef(def).filetyp of
|
|
|
ft_text :
|
|
|
appenddef(list,tabstractrecorddef(search_system_type('TEXTREC').typedef));
|