X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gdb%2Fcomplaints.c;h=704c68130982bfb024258255110332371e03c886;hb=e2ef962041bbe1ed89b238e11ee5a48487f386fb;hp=8d1321c985b5756a383457cef230b9f7dabf3a14;hpb=6aba47ca06d9150c6196a374b745c2711b46e045;p=platform%2Fupstream%2Fbinutils.git diff --git a/gdb/complaints.c b/gdb/complaints.c index 8d1321c..704c681 100644 --- a/gdb/complaints.c +++ b/gdb/complaints.c @@ -1,13 +1,12 @@ /* Support for complaint handling during symbol reading in GDB. - Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2000, 2002, 2004, - 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1990-2014 Free Software Foundation, Inc. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -16,20 +15,17 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include "defs.h" #include "complaints.h" -#include "gdb_assert.h" #include "command.h" #include "gdbcmd.h" 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 @@ -115,14 +111,14 @@ get_complaints (struct complaints **c) { if ((*c) != NULL) return (*c); - (*c) = XMALLOC (struct complaints); + (*c) = XNEW (struct complaints); (*c)->root = &complaint_sentinel; (*c)->series = ISOLATED_MESSAGE; (*c)->explanation = NULL; 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) { @@ -143,7 +139,7 @@ find_complaint (struct complaints *complaints, const char *file, } /* Oops not seen before, fill in a new complaint. */ - complaint = XMALLOC (struct complain); + complaint = XNEW (struct complain); complaint->fmt = fmt; complaint->file = file; complaint->line = line; @@ -166,13 +162,16 @@ static int stop_whining = 0; /* 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++; @@ -185,7 +184,8 @@ vcomplaint (struct complaints **c, const char *file, int line, const char *fmt, 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 @@ -245,6 +245,7 @@ void 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); @@ -294,7 +295,8 @@ clear_complaints (struct complaints **c, int less_verbose, int noisy) 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: @@ -321,7 +323,8 @@ complaints_show_value (struct ui_file *file, int from_tty, 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,