From a00caa12790706017c9331ad984b4f6b102db1b6 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 8 Apr 2020 14:33:35 -0600 Subject: [PATCH] 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 * complaints.h (stop_whining): Declare at top-level. (complaint): Don't declare stop_whining. --- gdb/ChangeLog | 5 +++++ gdb/complaints.h | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index aeab1ffa85..0c288344af 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-04-08 Tom Tromey + + * complaints.h (stop_whining): Declare at top-level. + (complaint): Don't declare stop_whining. + 2020-04-08 Tom Tromey * windows-nat.c (windows_nat::handle_output_debug_string): diff --git a/gdb/complaints.h b/gdb/complaints.h index b3bb4068e1..6ad056d257 100644 --- a/gdb/complaints.h +++ b/gdb/complaints.h @@ -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__); \ } \ -- 2.34.1