/* Support for complaint handling during symbol reading in GDB.
Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2000, 2002, 2004,
- 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of GDB.
extern void _initialize_complaints (void);
-/* Should each complaint message be self explanatory, or should we assume that
- a series of complaints is being produced? */
+/* Should each complaint message be self explanatory, or should we
+ assume that a series of complaints is being produced? */
/* case 1: First message of a series that must
start off with explanation. case 2: Subsequent message of a series
return (*c);
}
-static struct complain *
+static struct complain * ATTRIBUTE_PRINTF (4, 0)
find_complaint (struct complaints *complaints, const char *file,
int line, const char *fmt)
{
/* Print a complaint, and link the complaint block into a chain for
later handling. */
-static void ATTR_FORMAT (printf, 4, 0)
-vcomplaint (struct complaints **c, const char *file, int line, const char *fmt,
+static void ATTRIBUTE_PRINTF (4, 0)
+vcomplaint (struct complaints **c, const char *file,
+ int line, const char *fmt,
va_list args)
{
struct complaints *complaints = get_complaints (c);
- struct complain *complaint = find_complaint (complaints, file, line, fmt);
+ struct complain *complaint = find_complaint (complaints, file,
+ line, fmt);
enum complaint_series series;
+
gdb_assert (complaints != NULL);
complaint->counter++;
series = complaints->series;
if (complaint->file != NULL)
- internal_vwarning (complaint->file, complaint->line, complaint->fmt, args);
+ internal_vwarning (complaint->file, complaint->line,
+ complaint->fmt, args);
else if (deprecated_warning_hook)
(*deprecated_warning_hook) (complaint->fmt, args);
else
complaint (struct complaints **complaints, const char *fmt, ...)
{
va_list args;
+
va_start (args, fmt);
vcomplaint (complaints, NULL/*file*/, 0/*line*/, fmt, args);
va_end (args);
case SUBSEQUENT_MESSAGE:
/* It would be really nice to use begin_line() here.
Unfortunately that function doesn't track GDB_STDERR and
- consequently will sometimes supress a line when it shouldn't. */
+ consequently will sometimes supress a line when it
+ shouldn't. */
fputs_unfiltered ("\n", gdb_stderr);
break;
default:
void
_initialize_complaints (void)
{
- add_setshow_zinteger_cmd ("complaints", class_support, &stop_whining, _("\
+ add_setshow_zinteger_cmd ("complaints", class_support,
+ &stop_whining, _("\
Set max number of complaints about incorrect symbols."), _("\
Show max number of complaints about incorrect symbols."), NULL,
NULL, complaints_show_value,