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.
This commit is contained in:
Alan Modra 2018-04-25 13:27:22 +09:30
parent 651d162038
commit d99b4b92c8
3 changed files with 36 additions and 1 deletions

View file

@ -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.

View file

@ -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

View file

@ -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