summaryrefslogtreecommitdiff
path: root/gdb/ui-out.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ui-out.c')
-rw-r--r--gdb/ui-out.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/gdb/ui-out.c b/gdb/ui-out.c
index 92e461f850e..86bb2f5289a 100644
--- a/gdb/ui-out.c
+++ b/gdb/ui-out.c
@@ -607,8 +607,22 @@ ui_out::vmessage (const char *format, va_list args)
{
case 'F':
{
- int_field_s *field = va_arg (args, int_field_s *);
- field_int (field->name, field->val);
+ base_field_s *bf = va_arg (args, base_field_s *);
+ switch (bf->kind)
+ {
+ case field_kind::INT:
+ {
+ auto *f = (int_field_s *) bf;
+ field_int (f->name, f->val);
+ }
+ break;
+ case field_kind::STRING:
+ {
+ auto *f = (string_field_s *) bf;
+ field_string (f->name, f->str);
+ }
+ break;
+ }
}
break;
case 's':