aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2018-08-01 14:46:43 +0100
committerNick Clifton <nickc@redhat.com>2018-08-01 14:46:43 +0100
commitc25179e71fee952ace322ce26b3fe6b722ec77f9 (patch)
tree79d207607a68324af5793a941c681c43f2409354 /bfd
parent4a9f7d653c089fdd8ca66a51caab7c9687f50cd1 (diff)
downloadgdb-c25179e71fee952ace322ce26b3fe6b722ec77f9.zip
gdb-c25179e71fee952ace322ce26b3fe6b722ec77f9.tar.gz
gdb-c25179e71fee952ace322ce26b3fe6b722ec77f9.tar.bz2
Suppress compile time warning message when compiling coff-rs6000.c with gcc v8.
* coff-rs6000.c (_bfd_xcoff_put_ldsymbol_name): Suppress warnings about potentially truncated strncpy operations. (_bfd_xcoff_put_symbol_name): Likewise.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/coff-rs6000.c20
2 files changed, 24 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 59b7266..1751cbc 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,9 @@
2018-08-01 Nick Clifton <nickc@redhat.com>
+ * coff-rs6000.c (_bfd_xcoff_put_ldsymbol_name): Suppress warnings
+ about potentially truncated strncpy operations.
+ (_bfd_xcoff_put_symbol_name): Likewise.
+
* elf32-avr.c (avr_stub_name): Check for a NULL return from
bfd_malloc.
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 053ab18..ab282df 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -3506,6 +3506,23 @@ xcoff_ppc_relocate_section (bfd *output_bfd,
return TRUE;
}
+/* gcc-8 warns (*) on all the strncpy calls in this function 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
static bfd_boolean
_bfd_xcoff_put_ldsymbol_name (bfd *abfd ATTRIBUTE_UNUSED,
struct xcoff_loader_info *ldinfo,
@@ -3575,6 +3592,9 @@ _bfd_xcoff_put_symbol_name (struct bfd_link_info *info,
}
return TRUE;
}
+#if GCC_VERSION >= 8000
+# pragma GCC diagnostic pop
+#endif
static asection *
xcoff_create_csect_from_smclas (bfd *abfd,