mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-10 11:09:16 +02: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));
|
||||
finish_entry;
|
||||
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);
|
||||
finish_children;
|
||||
|
Loading…
Reference in New Issue
Block a user