X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Fui-out.c;h=4ecb65630b8bd33153eaed2bf5c2cadf506a685a;hb=40c75bc8b07abc5d5774ea1c439b69c96e7fd485;hp=a64c79481cad9447880d68cf4043474df75b8193;hpb=7f6aba03b929d3d893378760eeeca431005fc5cd;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ui-out.c b/gdb/ui-out.c index a64c79481c..4ecb65630b 100644 --- a/gdb/ui-out.c +++ b/gdb/ui-out.c @@ -1,6 +1,6 @@ /* Output generating routines for GDB. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. Contributed by Cygnus Solutions. Written by Fernando Nasser for Cygnus. @@ -26,6 +26,7 @@ #include "ui-out.h" #include "gdbsupport/format.h" #include "cli/cli-style.h" +#include "diagnostics.h" #include #include @@ -587,7 +588,15 @@ ui_out::call_do_message (const ui_file_style &style, const char *format, va_list args; va_start (args, format); + + /* Since call_do_message is only used as a helper of vmessage, silence the + warning here once instead of at all call sites in vmessage, if we were + to put a "format" attribute on call_do_message. */ + DIAGNOSTIC_PUSH + DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL do_message (style, format, args); + DIAGNOSTIC_POP + va_end (args); } @@ -679,6 +688,24 @@ 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; @@ -703,13 +730,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);