Fix up complaints.h for namespace use

If 'complaint' is used in a namespace context, it will fail because
'stop_whining' is only declared at the top level.  This patch fixes
this problem in a simple way, by moving the declaration of
'stop_whining' out of the macro and to the top-level.

gdb/ChangeLog
2020-04-08  Tom Tromey  <tromey@adacore.com>

	* complaints.h (stop_whining): Declare at top-level.
	(complaint): Don't declare stop_whining.
This commit is contained in:
Tom Tromey 2020-04-08 14:33:35 -06:00
parent d41b524f45
commit a00caa1279
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2020-04-08 Tom Tromey <tromey@adacore.com>
* complaints.h (stop_whining): Declare at top-level.
(complaint): Don't declare stop_whining.
2020-04-08 Tom Tromey <tromey@adacore.com>
* windows-nat.c (windows_nat::handle_output_debug_string):

View File

@ -25,6 +25,10 @@
extern void complaint_internal (const char *fmt, ...)
ATTRIBUTE_PRINTF (1, 2);
/* This controls whether complaints are emitted. */
extern int stop_whining;
/* Register a complaint. This is a macro around complaint_internal to
avoid computing complaint's arguments when complaints are disabled.
Running FMT via gettext [i.e., _(FMT)] can be quite expensive, for
@ -32,8 +36,6 @@ extern void complaint_internal (const char *fmt, ...)
#define complaint(FMT, ...) \
do \
{ \
extern int stop_whining; \
\
if (stop_whining > 0) \
complaint_internal (FMT, ##__VA_ARGS__); \
} \