124 lines
3.9 KiB
Diff
124 lines
3.9 KiB
Diff
|
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
|
|||
|
|
|||
|
---
|
|||
|
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/gdbsupport/safe-strerror.c b/gdb/gdbsupport/safe-strerror.c
|
|||
|
index 9973fa6785..a5ddf74835 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/diagnostics.h b/include/diagnostics.h
|
|||
|
index 2adaa4d3a0..019ade2567 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
|