* dwarf: procedure variables fixed

git-svn-id: trunk@2427 -
This commit is contained in:
florian 2006-02-04 14:02:07 +00:00
parent 733875c108
commit 5b9e0ab9d6

View File

@ -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);