public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Fix unused function error
@ 2019-12-12 12:12 Luis Machado
  0 siblings, 0 replies; only message in thread
From: Luis Machado @ 2019-12-12 12:12 UTC (permalink / raw)
  To: bfd-cvs, gdb-cvs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="us-ascii", Size: 5143 bytes --]

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=39f34d7b64ee76e07b82a3e57800905d249d8005

commit 39f34d7b64ee76e07b82a3e57800905d249d8005
Author: Luis Machado <luis.machado@linaro.org>
Date:   Wed Dec 11 11:55:49 2019 -0300

    Fix unused function error
    
    Attempting to build GDB in Ubuntu 16.04.6 LTS on x86_64, I ran into warnings
    that caused the build to fail:
    
    binutils-gdb/gdb/gdbsupport/safe-strerror.c:44:1: error: ‘char* select_strerror_r(char*, char*)’ defined but not used [-Werror=unused-function]  select_strerror_r (char *res, char *)
    
    The diagnostic macro DIAGNOSTIC_IGNORE_UNUSED_FUNCTION seems to expand
    correctly to its respective pragma, but this doesn't seem to have an effect on
    the warning. I tried to use the pragma explicitly and got the same result.
    
    ATTRIBUTE_UNUSED works fine in this case if you put it in both functions,
    which should fix warnings for both gdb and gdbserver builds.
    
    The compiler version is gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609.
    
    This is likely the result of PR64079 in GCC, which was fixed by commit
    9e96f1e1b9731c4e1ef4fbbbf0997319973f0537.
    
    To prevent other developers from attempting to use this macro, only to get
    confused by it not working as expected, it seems better to not define this
    particular macro.
    
    gdb/ChangeLog:
    
    2019-12-12  Luis Machado  <luis.machado@linaro.org>
    
    	* gdbsupport/safe-strerror.c: Don't include diagnostics.h.
    	(select_strerror_r): Use ATTRIBUTE_UNUSED instead of the diagnostics
    	macros.
    
    include/ChangeLog:
    
    2019-12-12  Luis Machado  <luis.machado@linaro.org>
    
    	* diagnostics.h (DIAGNOSTIC_IGNORE_UNUSED_FUNCTION). Remove
    	definitions.
    
    Change-Id: Iad6123d61d76d111e3ef8d24aa8c60112304c749

Diff:
---
 gdb/ChangeLog                  |  6 ++++++
 gdb/gdbsupport/safe-strerror.c | 12 ++----------
 include/ChangeLog              |  5 +++++
 include/diagnostics.h          |  9 ---------
 4 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c80c540..5ac4f9c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-12-12  Luis Machado  <luis.machado@linaro.org>
+
+	* gdbsupport/safe-strerror.c: Don't include diagnostics.h.
+	(select_strerror_r): Use ATTRIBUTE_UNUSED instead of the diagnostics
+	macros.
+
 2019-12-11  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-win.c (tui_set_win_height_command): Call
diff --git a/gdb/gdbsupport/safe-strerror.c b/gdb/gdbsupport/safe-strerror.c
index 9973fa6..a5ddf74 100644
--- a/gdb/gdbsupport/safe-strerror.c
+++ b/gdb/gdbsupport/safe-strerror.c
@@ -18,7 +18,6 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "common-defs.h"
-#include "diagnostics.h"
 #include <string.h>
 
 /* There are two different versions of strerror_r; one is GNU-specific, the
@@ -27,27 +26,20 @@
    to solve this for us because IPA does not use Gnulib but uses this
    function.  */
 
-/* We only ever use one of the two overloads, so suppress the warning for
-   an unused function.  */
-DIAGNOSTIC_PUSH
-DIAGNOSTIC_IGNORE_UNUSED_FUNCTION
-
 /* Called if we have a XSI-compliant strerror_r.  */
-static char *
+ATTRIBUTE_UNUSED static char *
 select_strerror_r (int res, char *buf)
 {
   return res == 0 ? buf : nullptr;
 }
 
 /* Called if we have a GNU strerror_r.  */
-static char *
+ATTRIBUTE_UNUSED static char *
 select_strerror_r (char *res, char *)
 {
   return res;
 }
 
-DIAGNOSTIC_POP
-
 /* Implementation of safe_strerror as defined in common-utils.h.  */
 
 const char *
diff --git a/include/ChangeLog b/include/ChangeLog
index 52cdc04..1444cc9 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-12  Luis Machado  <luis.machado@linaro.org>
+
+	* diagnostics.h (DIAGNOSTIC_IGNORE_UNUSED_FUNCTION). Remove
+	definitions.
+
 2019-12-11  Alan Modra  <amodra@gmail.com>
 
 	* opcode/mmix.h (PUSHGO_INSN_BYTE): Make unsigned.
diff --git a/include/diagnostics.h b/include/diagnostics.h
index 2adaa4d..019ade2 100644
--- a/include/diagnostics.h
+++ b/include/diagnostics.h
@@ -53,8 +53,6 @@
   DIAGNOSTIC_IGNORE ("-Wdeprecated-declarations")
 # define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER \
   DIAGNOSTIC_IGNORE ("-Wdeprecated-register")
-# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION \
-  DIAGNOSTIC_IGNORE ("-Wunused-function")
 # if __has_warning ("-Wenum-compare-switch")
 #  define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES \
    DIAGNOSTIC_IGNORE ("-Wenum-compare-switch")
@@ -65,9 +63,6 @@
 
 #elif defined (__GNUC__) /* GCC */
 
-# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION \
-  DIAGNOSTIC_IGNORE ("-Wunused-function")
-
 # define DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION \
   DIAGNOSTIC_IGNORE ("-Wstringop-truncation")
 
@@ -88,10 +83,6 @@
 # define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER
 #endif
 
-#ifndef DIAGNOSTIC_IGNORE_UNUSED_FUNCTION
-# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION
-#endif
-
 #ifndef DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
 # define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
 #endif


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-12-12 12:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-12 12:12 [binutils-gdb] Fix unused function error Luis Machado

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).