gdbsupport/tdesc: print enum size attribute
authorChungyi Chi <demonic@csie.io>
Tue, 1 Dec 2020 11:06:08 +0000 (11:06 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 1 Dec 2020 11:22:24 +0000 (11:22 +0000)
According to gdb online docs[1], XML target description enum types
have both name and size attributes.  Currently GDB does not print the
size attribute.  This commit fixes this.  This change will be visible
in the output of the command `maint print xml-tdesc`.

There are other bugs with the print of enum types in XML target
descriptions, the next commit will fix these and include a test that
covers this patch.

[1] https://sourceware.org/gdb/current/onlinedocs/gdb/Enum-Target-Types.html#Enum-Target-Types

gdbsupport/ChangeLog:

* tdesc.cc (print_xml_feature::visit): Print enum size attribute.

gdbsupport/ChangeLog
gdbsupport/tdesc.cc

index d1e46a3dca8eb7a34b4bf6d0963ca04f3b3b43d6..a77f1c9fd86df2b4692e06183a42a952c55084af 100644 (file)
@@ -1,3 +1,7 @@
+2020-12-01  Chungyi Chi  <demonic@csie.io>
+
+       * tdesc.cc (print_xml_feature::visit): Print enum size attribute.
+
 2020-11-20  Tom Tromey  <tromey@adacore.com>
 
        * thread-pool.cc (thread_pool::set_thread_count): Ignore system
index c2a3af700e3caa8315faaec6e49081c79eb6bc49..2bc0247907dc6d23dd6434b8810704f8aa302c5a 100644 (file)
@@ -351,6 +351,8 @@ void print_xml_feature::visit (const tdesc_type_with_fields *t)
       break;
 
     case TDESC_TYPE_ENUM:
+      if (t->size > 0)
+       string_appendf (tmp, " size=\"%d\"", t->size);
       string_appendf (tmp, ">");
       add_line (tmp);
       for (const tdesc_type_field &f : t->fields)