[binutils-gdb] Use DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION to silence GCC 8.1

H.J.Lu hjl@sourceware.org
Mon Jun 4 17:07:00 GMT 2018


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

commit 95da9854466ada2572b42f5528711a06a2d42db1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jun 4 10:01:34 2018 -0700

    Use DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION to silence GCC 8.1
    
    GCC 8.1 warns about destination size with -Wstringop-truncation:
    
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643
    
    Use DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION to silence it.
    
    bfd/
    
    	PR binutils/23146
    	* bfd-in.h: Include "diagnostics.h".
    	* bfd-in2.h: Regenerated.
    	* elf32-arm.c (elf32_arm_nabi_write_core_note): Use
    	DIAGNOSTIC_PUSH, DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION and
    	DIAGNOSTIC_POP to silence GCC 8.1 warnings with
    	-Wstringop-truncation.
    	* elf32-ppc.c (ppc_elf_write_core_note): Likewse.
    	* elf32-s390.c (elf_s390_write_core_note): Likewse.
    	* elf64-ppc.c (ppc64_elf_write_core_note): Likewse.
    	* elf64-s390.c (elf_s390_write_core_note): Likewse.
    	* elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewse.
    
    include/
    
    	* diagnostics.h (DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION): Always
    	define for GCC.

Diff:
---
 bfd/ChangeLog         | 15 +++++++++++++++
 bfd/bfd-in.h          |  1 +
 bfd/bfd-in2.h         |  1 +
 bfd/elf32-arm.c       |  9 +++++++++
 bfd/elf32-ppc.c       |  9 +++++++++
 bfd/elf32-s390.c      |  9 +++++++++
 bfd/elf64-ppc.c       |  9 +++++++++
 bfd/elf64-s390.c      |  9 +++++++++
 bfd/elfxx-aarch64.c   |  9 +++++++++
 include/ChangeLog     |  5 +++++
 include/diagnostics.h |  4 +---
 11 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a8f4688..b36cdab 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,18 @@
+2018-06-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/23146
+	* bfd-in.h: Include "diagnostics.h".
+	* bfd-in2.h: Regenerated.
+	* elf32-arm.c (elf32_arm_nabi_write_core_note): Use
+	DIAGNOSTIC_PUSH, DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION and
+	DIAGNOSTIC_POP to silence GCC 8.1 warnings with
+	-Wstringop-truncation.
+	* elf32-ppc.c (ppc_elf_write_core_note): Likewse.
+	* elf32-s390.c (elf_s390_write_core_note): Likewse.
+	* elf64-ppc.c (ppc64_elf_write_core_note): Likewse.
+	* elf64-s390.c (elf_s390_write_core_note): Likewse.
+	* elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewse.
+
 2018-06-03  Jim Wilson  <jimw@sifive.com>
 
 	PR ld/23244
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 481587e..1d477c3 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -34,6 +34,7 @@ extern "C" {
 
 #include "ansidecl.h"
 #include "symcat.h"
+#include "diagnostics.h"
 #include <stdarg.h>
 #include <sys/stat.h>
 
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index ef62f31..65735f0 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -41,6 +41,7 @@ extern "C" {
 
 #include "ansidecl.h"
 #include "symcat.h"
+#include "diagnostics.h"
 #include <stdarg.h>
 #include <sys/stat.h>
 
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index dbfd838..870111b 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -2174,7 +2174,16 @@ elf32_arm_nabi_write_core_note (bfd *abfd, char *buf, int *bufsiz,
 	va_start (ap, note_type);
 	memset (data, 0, sizeof (data));
 	strncpy (data + 28, va_arg (ap, const char *), 16);
+	DIAGNOSTIC_PUSH;
+	/* GCC 8.1 warns about 80 equals destination size with
+	   -Wstringop-truncation:
+	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643
+	 */
+#if GCC_VERSION == 8001
+	DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION;
+#endif
 	strncpy (data + 44, va_arg (ap, const char *), 80);
+	DIAGNOSTIC_POP;
 	va_end (ap);
 
 	return elfcore_write_note (abfd, buf, bufsiz,
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 3482bac..ea8dbed 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -2411,7 +2411,16 @@ ppc_elf_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_type, ...)
 	va_start (ap, note_type);
 	memset (data, 0, sizeof (data));
 	strncpy (data + 32, va_arg (ap, const char *), 16);
+	DIAGNOSTIC_PUSH;
+	/* GCC 8.1 warns about 80 equals destination size with
+	   -Wstringop-truncation:
+	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643
+	 */
+#if GCC_VERSION == 8001
+	DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION;
+#endif
 	strncpy (data + 48, va_arg (ap, const char *), 80);
+	DIAGNOSTIC_POP;
 	va_end (ap);
 	return elfcore_write_note (abfd, buf, bufsiz,
 				   "CORE", note_type, data, sizeof (data));
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 99ceb76..ebda1da 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -3951,7 +3951,16 @@ elf_s390_write_core_note (bfd *abfd, char *buf, int *bufsiz,
 	va_end (ap);
 
 	strncpy (data + 28, fname, 16);
+	DIAGNOSTIC_PUSH;
+	/* GCC 8.1 warns about 80 equals destination size with
+	   -Wstringop-truncation:
+	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643
+	 */
+#if GCC_VERSION == 8001
+	DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION;
+#endif
 	strncpy (data + 44, psargs, 80);
+	DIAGNOSTIC_POP;
 	return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type,
 				   &data, sizeof (data));
       }
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index f543cb0..16199fb 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -3041,7 +3041,16 @@ ppc64_elf_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_type,
 	va_start (ap, note_type);
 	memset (data, 0, sizeof (data));
 	strncpy (data + 40, va_arg (ap, const char *), 16);
+	DIAGNOSTIC_PUSH;
+	/* GCC 8.1 warns about 80 equals destination size with
+	   -Wstringop-truncation:
+	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643
+	 */
+#if GCC_VERSION == 8001
+	DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION;
+#endif
 	strncpy (data + 56, va_arg (ap, const char *), 80);
+	DIAGNOSTIC_POP;
 	va_end (ap);
 	return elfcore_write_note (abfd, buf, bufsiz,
 				   "CORE", note_type, data, sizeof (data));
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 612557f..93a3c7c 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -3760,7 +3760,16 @@ elf_s390_write_core_note (bfd *abfd, char *buf, int *bufsiz,
 	va_end (ap);
 
 	strncpy (data + 40, fname, 16);
+	DIAGNOSTIC_PUSH;
+	/* GCC 8.1 warns about 80 equals destination size with
+	   -Wstringop-truncation:
+	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643
+	 */
+#if GCC_VERSION == 8001
+	DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION;
+#endif
 	strncpy (data + 56, psargs, 80);
+	DIAGNOSTIC_POP;
 	return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type,
 				   &data, sizeof (data));
       }
diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c
index af37f82..3ea8dad 100644
--- a/bfd/elfxx-aarch64.c
+++ b/bfd/elfxx-aarch64.c
@@ -640,7 +640,16 @@ _bfd_aarch64_elf_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_ty
 	va_start (ap, note_type);
 	memset (data, 0, sizeof (data));
 	strncpy (data + 40, va_arg (ap, const char *), 16);
+	DIAGNOSTIC_PUSH;
+	/* GCC 8.1 warns about 80 equals destination size with
+	   -Wstringop-truncation:
+	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643
+	 */
+#if GCC_VERSION == 8001
+	DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION;
+#endif
 	strncpy (data + 56, va_arg (ap, const char *), 80);
+	DIAGNOSTIC_POP;
 	va_end (ap);
 
 	return elfcore_write_note (abfd, buf, bufsiz, "CORE",
diff --git a/include/ChangeLog b/include/ChangeLog
index 74be778..76a312a 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,5 +1,10 @@
 2018-06-04  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* diagnostics.h (DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION): Always
+	define for GCC.
+
+2018-06-04  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* diagnostics.h (DIAGNOSTIC_STRINGIFY_1): New.
 	(DIAGNOSTIC_STRINGIFY): Likewise.
 	(DIAGNOSTIC_IGNORE): Replace STRINGIFY with DIAGNOSTIC_STRINGIFY.
diff --git a/include/diagnostics.h b/include/diagnostics.h
index f7412d4..4a67410 100644
--- a/include/diagnostics.h
+++ b/include/diagnostics.h
@@ -48,10 +48,8 @@
 # define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION \
   DIAGNOSTIC_IGNORE ("-Wunused-function")
 
-# if __GNUC__ == 8 && __GNUC_MINOR__ < 2
-#  define DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION \
+# define DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION \
   DIAGNOSTIC_IGNORE ("-Wstringop-truncation")
-# endif
 #endif
 
 #ifndef DIAGNOSTIC_IGNORE_SELF_MOVE



More information about the Binutils-cvs mailing list