* started to fix setdef writing for dwarf

* some missing finish_entry inserted

git-svn-id: trunk@2369 -
This commit is contained in:
florian 2006-01-28 23:52:39 +00:00
parent 2b059f925f
commit b4946c6dc9

View File

@ -791,6 +791,7 @@ implementation
begin begin
append_entry(DW_TAG_pointer_type,false,[]); append_entry(DW_TAG_pointer_type,false,[]);
append_labelentry_ref(DW_AT_type,def_dwarf_lab(tpointerdef(def).pointertype.def)); append_labelentry_ref(DW_AT_type,def_dwarf_lab(tpointerdef(def).pointertype.def));
finish_entry;
end; end;
floatdef : floatdef :
@ -808,16 +809,16 @@ implementation
setdef : setdef :
begin begin
if assigned(def.typesym) then if assigned(def.typesym) then
append_entry(DW_TAG_enumeration_type,true,[ append_entry(DW_TAG_set_type,false,[
DW_AT_name,DW_FORM_string,def.typesym.name+#0, DW_AT_name,DW_FORM_string,def.typesym.name+#0,
DW_AT_byte_size,DW_FORM_data1,def.size DW_AT_byte_size,DW_FORM_data1,def.size
]) ])
else else
append_entry(DW_TAG_enumeration_type,true,[ append_entry(DW_TAG_set_type,false,[
DW_AT_byte_size,DW_FORM_data1,def.size DW_AT_byte_size,DW_FORM_data1,def.size
]); ]);
append_labelentry_ref(DW_AT_type,def_dwarf_lab(tsetdef(def).elementtype.def)); append_labelentry_ref(DW_AT_type,def_dwarf_lab(tsetdef(def).elementtype.def));
finish_entry finish_entry;
end; end;
{ {
formaldef : formaldef :
@ -1270,22 +1271,6 @@ implementation
} }
end; end;
function typesym_stabstr(sym:ttypesym) : pchar;
var
stabchar : string[2];
begin
{
result:=nil;
if not assigned(sym.restype.def) then
internalerror(200509262);
if sym.restype.def.deftype in tagtypes then
stabchar:='Tt'
else
stabchar:='t';
result:=sym_stabstr_evaluate(sym,'"${name}:$1$2",${N_LSYM},0,${line},0',[stabchar,def_stab_number(sym.restype.def)]);
}
end;
procedure append_procsym(sym:tprocsym); procedure append_procsym(sym:tprocsym);
var var
@ -1327,6 +1312,7 @@ implementation
DW_AT_name,DW_FORM_string,sym.name+#0 DW_AT_name,DW_FORM_string,sym.name+#0
]); ]);
append_labelentry_ref(DW_AT_type,def_dwarf_lab(ttypesym(sym).restype.def)); append_labelentry_ref(DW_AT_type,def_dwarf_lab(ttypesym(sym).restype.def));
finish_entry;
end; end;
enumsym : enumsym :
{ ignore enum syms, they are written by the owner } { ignore enum syms, they are written by the owner }