Patchwork [review] Fix up complaints.h for namespace use

login
register
mail settings
Submitter Simon Marchi (Code Review)
Date Nov. 26, 2019, 5:11 p.m.
Message ID <gerrit.1574788288000.Id397d4f7b850a855253fdf6b49cd7be1cddbecf5@gnutoolchain-gerrit.osci.io>
Download mbox | patch
Permalink /patch/36229/
State New
Headers show

Comments

Simon Marchi (Code Review) - Nov. 26, 2019, 5:11 p.m.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/713
......................................................................

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
2019-11-26  Tom Tromey  <tromey@adacore.com>

	* complaints.h (stop_whining): Declare at top-level.
	(complaint): Don't declare stop_whining.

Change-Id: Id397d4f7b850a855253fdf6b49cd7be1cddbecf5
---
M gdb/ChangeLog
M gdb/complaints.h
2 files changed, 9 insertions(+), 2 deletions(-)
Simon Marchi (Code Review) - Nov. 29, 2019, 7:53 p.m.
Pedro Alves has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/713
......................................................................


Patch Set 1: Code-Review+2

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 42ebe64..25616e2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@ 
 2019-11-26  Tom Tromey  <tromey@adacore.com>
 
+	* complaints.h (stop_whining): Declare at top-level.
+	(complaint): Don't declare stop_whining.
+
+2019-11-26  Tom Tromey  <tromey@adacore.com>
+
 	* windows-nat.c (get_windows_debug_event): Remove parameters.
 	(windows_nat_target::wait): Update.
 
diff --git a/gdb/complaints.h b/gdb/complaints.h
index f97ca7b..954cb4c 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 @@ 
 #define complaint(FMT, ...)					\
   do								\
     {								\
-      extern int stop_whining;					\
-								\
       if (stop_whining > 0)					\
 	complaint_internal (FMT, ##__VA_ARGS__);		\
     }								\