Paul Ishenin wrote 6 lines
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;