mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 02:06:12 +02:00
* dwarf: procedure variables fixed
git-svn-id: trunk@2427 -
This commit is contained in:
parent
733875c108
commit
5b9e0ab9d6
@ -886,6 +886,7 @@ implementation
|
||||
finish_entry;
|
||||
end;
|
||||
|
||||
|
||||
procedure append_dwarftag_procvardef(def:tprocvardef);
|
||||
|
||||
procedure doappend;
|
||||
@ -901,12 +902,14 @@ implementation
|
||||
append_entry(DW_TAG_subroutine_type,true,[
|
||||
DW_AT_prototyped,DW_FORM_flag,true
|
||||
]);
|
||||
append_labelentry_ref(DW_AT_type,def_dwarf_lab(tprocvardef(def).rettype.def));
|
||||
if not(is_void(tprocvardef(def).rettype.def)) then
|
||||
append_labelentry_ref(DW_AT_type,def_dwarf_lab(tprocvardef(def).rettype.def));
|
||||
finish_entry;
|
||||
|
||||
{ write parameters }
|
||||
for i:=0 to def.paras.count-1 do
|
||||
begin
|
||||
append_entry(DW_TAG_subroutine_type,false,[
|
||||
append_entry(DW_TAG_formal_parameter,false,[
|
||||
DW_AT_name,DW_FORM_string,tparavarsym(def.paras[i]).name+#0
|
||||
]);
|
||||
append_labelentry_ref(DW_AT_type,def_dwarf_lab(tparavarsym(def.paras[i]).vartype.def));
|
||||
@ -931,7 +934,7 @@ implementation
|
||||
|
||||
{ proc entry }
|
||||
append_entry(DW_TAG_member,false,[
|
||||
DW_AT_name,DW_FORM_string,'PROC'#0,
|
||||
DW_AT_name,DW_FORM_string,'Proc'#0,
|
||||
DW_AT_data_member_location,DW_FORM_block1,1+lengthuleb128(0)
|
||||
]);
|
||||
asmlist[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_plus_uconst)));
|
||||
@ -941,7 +944,7 @@ implementation
|
||||
|
||||
{ self entry }
|
||||
append_entry(DW_TAG_member,false,[
|
||||
DW_AT_name,DW_FORM_string,'SELF'#0,
|
||||
DW_AT_name,DW_FORM_string,'Self'#0,
|
||||
DW_AT_data_member_location,DW_FORM_block1,1+lengthuleb128(sizeof(aint))
|
||||
]);
|
||||
asmlist[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_plus_uconst)));
|
||||
@ -953,13 +956,9 @@ implementation
|
||||
|
||||
asmlist[al_dwarf_info].concat(tai_symbol.create(proc,0));
|
||||
doappend;
|
||||
finish_entry;
|
||||
end
|
||||
else
|
||||
begin
|
||||
doappend;
|
||||
finish_entry;
|
||||
end;
|
||||
doappend;
|
||||
end;
|
||||
|
||||
|
||||
@ -1137,7 +1136,7 @@ implementation
|
||||
insertdef(list,class_tobject);
|
||||
{ parameters }
|
||||
for i:=0 to tprocvardef(def).paras.count-1 do
|
||||
append_labelentry_ref(DW_AT_type,def_dwarf_lab(tparavarsym(tprocvardef(def).paras[i]).vartype.def));
|
||||
insertdef(list,tparavarsym(tprocvardef(def).paras[i]).vartype.def);
|
||||
end;
|
||||
procdef :
|
||||
insertdef(list,tprocdef(def).rettype.def);
|
||||
|
Loading…
Reference in New Issue
Block a user