Fix unused function error
authorLuis Machado <luis.machado@linaro.org>
Wed, 11 Dec 2019 14:55:49 +0000 (11:55 -0300)
committerLuis Machado <luis.machado@linaro.org>
Thu, 12 Dec 2019 12:12:02 +0000 (09:12 -0300)
commit39f34d7b64ee76e07b82a3e57800905d249d8005
tree7024bd3b394bce0cad5383372c60dca59e938c22
parent4f7cc14110d67a180f5408a91ac53a91f88f776e
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
gdb/gdbsupport/safe-strerror.c
include/ChangeLog
include/diagnostics.h