On 01 Dec 2009, at 13:42, Paul Ishenin wrote:
Jonas Maebe wrote:
Would it be enough if the type name were changed to "variant"? It
would not be 100% safe (since "variant" is not a reserved word,
anyone can declare a variable/type/... with the name "variant"),
but I don't immediately see another solution.
I think yes.
Does the attached patch work for DWARF with Lazarus? "ptype
variantvar" still shows tvardata, but "info variantvar" shows "static
VARIANT V;", and I don't know what the GDB MI will return for the
query that Lazarus uses.
Jonas
Index: dbgdwarf.pas
===================================================================
--- dbgdwarf.pas (revision 14293)
+++ dbgdwarf.pas (working copy)
@@ -3245,8 +3245,11 @@
procedure TDebugInfoDwarf2.appenddef_variant(list:TAsmList;def:
tvariantdef);
begin
- { variants aren't known to dwarf2 but writting tvardata
should be enough }
- appenddef_record(list,trecorddef(vardatadef));
+ append_entry(DW_TAG_typedef,false,[
+ DW_AT_name,DW_FORM_string,'Variant'#0
+ ]);
+ append_labelentry_ref(DW_AT_type,def_dwarf_lab(vardatadef));
+ finish_entry;
end;
function TDebugInfoDwarf2.dwarf_version: Word;
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel