diff options
author | Alan Modra <amodra@gmail.com> | 2018-04-25 13:27:22 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2018-04-25 17:25:57 +0930 |
commit | d99b4b92c8ed0f7ef98f370bbf65a360ed66ad7b (patch) | |
tree | 026e6a0c99205cb06226706bf85feaea264290b6 | |
parent | 651d16203867f8013a0f78a2f2e24df8c02d1377 (diff) | |
download | gdb-d99b4b92c8ed0f7ef98f370bbf65a360ed66ad7b.zip gdb-d99b4b92c8ed0f7ef98f370bbf65a360ed66ad7b.tar.gz gdb-d99b4b92c8ed0f7ef98f370bbf65a360ed66ad7b.tar.bz2 |
Silence gcc-8 warnings
This seems to work with gcc-8 and a bunch of prior gcc versions I tested.
* elf-linux-core.h: Disable gcc-8 string truncation warning.
* elf.c (elfcore_write_prpsinfo): Likewise.
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf-linux-core.h | 23 | ||||
-rw-r--r-- | bfd/elf.c | 7 |
3 files changed, 36 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c48036f..91a41ae 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,4 +1,9 @@ -2018-04-35 Alan Modra <amodra@gmail.com> +2018-04-25 Alan Modra <amodra@gmail.com> + + * elf-linux-core.h: Disable gcc-8 string truncation warning. + * elf.c (elfcore_write_prpsinfo): Likewise. + +2018-04-25 Alan Modra <amodra@gmail.com> * Makefile.am: Remove arm-aout and arm-coff support. * config.bfd: Likewise. diff --git a/bfd/elf-linux-core.h b/bfd/elf-linux-core.h index 0a5d76f..fa06903 100644 --- a/bfd/elf-linux-core.h +++ b/bfd/elf-linux-core.h @@ -21,6 +21,25 @@ #ifndef ELF_LINUX_CORE_H #define ELF_LINUX_CORE_H +/* gcc-8 warns (*) on all the strncpy calls in this file about + possible string truncation. The "truncation" is not a bug. We + have an external representation of structs with fields that are not + necessarily NULL terminated and corresponding internal + representation fields that are one larger so that they can always + be NULL terminated. + gcc versions between 4.2 and 4.6 do not allow pragma control of + diagnostics inside functions, giving a hard error if you try to use + the finer control available with later versions. + gcc prior to 4.2 warns about diagnostic push and pop. + gcc-5, gcc-6 and gcc-7 warn that -Wstringop-truncation is unknown, + unless you also add #pragma GCC diagnostic ignored "-Wpragma". + (*) Depending on your system header files! */ + +#if GCC_VERSION >= 8000 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstringop-truncation" +#endif + /* External 32-bit structure for PRPSINFO. This structure is ABI-defined, thus we choose to use char arrays here in order to avoid dealing with different types in different architectures. @@ -231,4 +250,8 @@ swap_linux_prpsinfo64_ugid16_out strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs)); } +#if GCC_VERSION >= 8000 +#pragma GCC diagnostic pop +#endif + #endif @@ -10508,6 +10508,10 @@ elfcore_write_note (bfd *abfd, return buf; } +#if GCC_VERSION >= 8000 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstringop-truncation" +#endif char * elfcore_write_prpsinfo (bfd *abfd, char *buf, @@ -10566,6 +10570,9 @@ elfcore_write_prpsinfo (bfd *abfd, free (buf); return NULL; } +#if GCC_VERSION >= 8000 +#pragma GCC diagnostic pop +#endif char * elfcore_write_linux_prpsinfo32 |