Add `set print array-indexes' tests for C/C++ arrays
[binutils-gdb.git] / gdb / ui-out.c
index 6b0b5acd3e1376cc3bfdbea357ae360074b58206..05d3515aa9aa53ef9ad059aff75c31d367fe83d6 100644 (file)
@@ -1,6 +1,6 @@
 /* Output generating routines for GDB.
 
-   Copyright (C) 1999-2019 Free Software Foundation, Inc.
+   Copyright (C) 1999-2022 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions.
    Written by Fernando Nasser for Cygnus.
@@ -527,12 +527,6 @@ ui_out::field_string (const char *fldname, const char *string,
   do_field_string (fldno, width, align, fldname, string, style);
 }
 
-void
-ui_out::field_string (const char *fldname, const std::string &string)
-{
-  field_string (fldname, string.c_str ());
-}
-
 /* VARARGS */
 void
 ui_out::field_fmt (const char *fldname, const char *format, ...)
@@ -644,10 +638,10 @@ ui_out::vmessage (const ui_file_style &in_style, const char *format,
          }
          break;
        case wide_string_arg:
-         gdb_assert_not_reached (_("wide_string_arg not supported in vmessage"));
+         gdb_assert_not_reached ("wide_string_arg not supported in vmessage");
          break;
        case wide_char_arg:
-         gdb_assert_not_reached (_("wide_char_arg not supported in vmessage"));
+         gdb_assert_not_reached ("wide_char_arg not supported in vmessage");
          break;
        case long_long_arg:
          call_do_message (style, current_substring, va_arg (args, long long));
@@ -688,20 +682,38 @@ ui_out::vmessage (const ui_file_style &in_style, const char *format,
              }
          }
          break;
+       case size_t_arg:
+         {
+           size_t val = va_arg (args, size_t);
+           switch (piece.n_int_args)
+             {
+             case 0:
+               call_do_message (style, current_substring, val);
+               break;
+             case 1:
+               call_do_message (style, current_substring, intvals[0], val);
+               break;
+             case 2:
+               call_do_message (style, current_substring,
+                                intvals[0], intvals[1], val);
+               break;
+             }
+         }
+         break;
        case double_arg:
          call_do_message (style, current_substring, va_arg (args, double));
          break;
        case long_double_arg:
-         gdb_assert_not_reached (_("long_double_arg not supported in vmessage"));
+         gdb_assert_not_reached ("long_double_arg not supported in vmessage");
          break;
        case dec32float_arg:
-         gdb_assert_not_reached (_("dec32float_arg not supported in vmessage"));
+         gdb_assert_not_reached ("dec32float_arg not supported in vmessage");
          break;
        case dec64float_arg:
-         gdb_assert_not_reached (_("dec64float_arg not supported in vmessage"));
+         gdb_assert_not_reached ("dec64float_arg not supported in vmessage");
          break;
        case dec128float_arg:
-         gdb_assert_not_reached (_("dec128float_arg not supported in vmessage"));
+         gdb_assert_not_reached ("dec128float_arg not supported in vmessage");
          break;
        case ptr_arg:
          switch (current_substring[2])
@@ -712,13 +724,13 @@ ui_out::vmessage (const ui_file_style &in_style, const char *format,
                base_field_s *bf = va_arg (args, base_field_s *);
                switch (bf->kind)
                  {
-                 case field_kind::SIGNED:
+                 case field_kind::FIELD_SIGNED:
                    {
                      auto *f = (signed_field_s *) bf;
                      field_signed (f->name, f->val);
                    }
                    break;
-                 case field_kind::STRING:
+                 case field_kind::FIELD_STRING:
                    {
                      auto *f = (string_field_s *) bf;
                      field_string (f->name, f->str);