mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-21 06:59:51 +01:00
+ pointer to vmt for classes and objects with a vmt
git-svn-id: trunk@6544 -
This commit is contained in:
parent
f81303874f
commit
42b58affc7
@ -2602,6 +2602,25 @@ implementation
|
|||||||
append_labelentry_ref(DW_AT_type,def_dwarf_lab(def.childof));
|
append_labelentry_ref(DW_AT_type,def_dwarf_lab(def.childof));
|
||||||
finish_entry;
|
finish_entry;
|
||||||
end;
|
end;
|
||||||
|
if (oo_has_vmt in def.objectoptions) and
|
||||||
|
(not assigned(def.childof) or
|
||||||
|
not(oo_has_vmt in def.childof.objectoptions)) then
|
||||||
|
begin
|
||||||
|
{ vmt field }
|
||||||
|
append_entry(DW_TAG_member,false,[
|
||||||
|
DW_AT_artificial,DW_FORM_flag,true,
|
||||||
|
DW_AT_name,DW_FORM_string,'_vptr$'+def.objname^+#0,
|
||||||
|
DW_AT_data_member_location,DW_FORM_block1,1+lengthuleb128(def.vmt_offset)
|
||||||
|
]);
|
||||||
|
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_plus_uconst)));
|
||||||
|
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_uleb128bit(def.vmt_offset));
|
||||||
|
{ should be changed into a pointer to a function returning an }
|
||||||
|
{ int and with TAG_unspecified_parameters }
|
||||||
|
if (voidpointertype.dbg_state=dbg_state_unused) then
|
||||||
|
voidpointertype.dbg_state:=dbg_state_used;
|
||||||
|
append_labelentry_ref(DW_AT_type,def_dwarf_lab(voidpointertype));
|
||||||
|
finish_entry;
|
||||||
|
end;
|
||||||
|
|
||||||
def.symtable.symList.ForEachCall(@enum_membersyms_callback,nil);
|
def.symtable.symList.ForEachCall(@enum_membersyms_callback,nil);
|
||||||
finish_children;
|
finish_children;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user