From 0bae9e9ec550c940e263b37f577bf11b2dabf934 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 12 Jul 2017 12:17:02 +0100 Subject: [PATCH] Fix compile time warnings building the binutils with gcc 7.1.1. bfd * elf32-xtensa.c (elf_xtensa_get_plt_section): Increase length of plt_name buffer. (elf_xtensa_get_gotplt_section): Increase length of got_name buffer. * mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add a default return of FALSE. * mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): Add a default return of FALSE. binutils * dwarf.c (dwarf_vmatoa_1): Do not pass a NULL string pointer to sprintf. * srconv.c (walk_tree_type): Initialise the spare field of the IT_dty structure. gas * config/tc-pru.c (md_assemble): Add continue statement after handling 'E' operand character. * config/tc-v850.c (md_assemble): Initialise the 'insn' variable. --- bfd/ChangeLog | 12 ++++++++++++ bfd/elf32-xtensa.c | 4 ++-- bfd/mach-o-arm.c | 25 ++++++++++++++++--------- bfd/mach-o-i386.c | 6 +++--- binutils/ChangeLog | 8 ++++++++ binutils/dwarf.c | 5 ++++- binutils/srconv.c | 15 ++++++--------- gas/ChangeLog | 7 +++++++ gas/config/tc-pru.c | 7 +++++-- gas/config/tc-v850.c | 3 +-- 10 files changed, 64 insertions(+), 28 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 54aa1c7ce4..a48935796d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,15 @@ +2017-07-12 Nick Clifton + + Fix compile time warnings using gcc 7.1.1. + * elf32-xtensa.c (elf_xtensa_get_plt_section): Increase length of + plt_name buffer. + (elf_xtensa_get_gotplt_section): Increase length of got_name + buffer. + * mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add a + default return of FALSE. + * mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): Add a + default return of FALSE. + 2017-07-12 Alan Modra * binary.c (binary_set_section_contents): Don't print filepos in diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index b3ddbf1e24..19a162eebb 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -10841,7 +10841,7 @@ static asection * elf_xtensa_get_plt_section (struct bfd_link_info *info, int chunk) { bfd *dynobj; - char plt_name[10]; + char plt_name[17]; if (chunk == 0) return elf_hash_table (info)->splt; @@ -10856,7 +10856,7 @@ static asection * elf_xtensa_get_gotplt_section (struct bfd_link_info *info, int chunk) { bfd *dynobj; - char got_name[14]; + char got_name[21]; if (chunk == 0) return elf_hash_table (info)->sgotplt; diff --git a/bfd/mach-o-arm.c b/bfd/mach-o-arm.c index e7315225dd..5139f795f2 100644 --- a/bfd/mach-o-arm.c +++ b/bfd/mach-o-arm.c @@ -150,7 +150,7 @@ static bfd_boolean bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, struct mach_o_reloc_info_external *raw, arelent *res, asymbol **syms) - { +{ bfd_mach_o_reloc_info reloc; if (!bfd_mach_o_pre_canonicalize_one_reloc (abfd, raw, &reloc, res, syms)) @@ -174,6 +174,7 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, return TRUE; } return FALSE; + case BFD_MACH_O_ARM_RELOC_SECTDIFF: if (reloc.r_length == 2) { @@ -186,6 +187,7 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, return TRUE; } return FALSE; + case BFD_MACH_O_ARM_RELOC_LOCAL_SECTDIFF: if (reloc.r_length == 2) { @@ -198,6 +200,7 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, return TRUE; } return FALSE; + case BFD_MACH_O_ARM_RELOC_HALF_SECTDIFF: switch (reloc.r_length) { @@ -209,8 +212,9 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, return TRUE; } return FALSE; + default: - return FALSE; + break; } } else @@ -239,24 +243,23 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, return FALSE; } break; + case BFD_MACH_O_ARM_RELOC_BR24: if (reloc.r_length == 2 && reloc.r_pcrel == 1) { res->howto = &arm_howto_table[11]; return TRUE; } - else - return FALSE; break; + case BFD_MACH_O_THUMB_RELOC_BR22: if (reloc.r_length == 2 && reloc.r_pcrel == 1) { res->howto = &arm_howto_table[16]; return TRUE; } - else - return FALSE; break; + case BFD_MACH_O_ARM_RELOC_HALF: if (reloc.r_pcrel == 0) switch (reloc.r_length) @@ -268,7 +271,8 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, res->howto = &arm_howto_table[14]; return TRUE; } - return FALSE; + break; + case BFD_MACH_O_ARM_RELOC_PAIR: if (res[-1].howto == &arm_howto_table[12] && reloc.r_length == 0) @@ -290,11 +294,14 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd, res->address = res[-1].address; return TRUE; } - return FALSE; + break; + default: - return FALSE; + break; } } + + return FALSE; } static reloc_howto_type * diff --git a/bfd/mach-o-i386.c b/bfd/mach-o-i386.c index b2f02415c3..ce0389e020 100644 --- a/bfd/mach-o-i386.c +++ b/bfd/mach-o-i386.c @@ -164,7 +164,7 @@ bfd_mach_o_i386_canonicalize_one_reloc (bfd *abfd, } return FALSE; default: - return FALSE; + break; } } else @@ -192,11 +192,11 @@ bfd_mach_o_i386_canonicalize_one_reloc (bfd *abfd, default: return FALSE; } - break; default: - return FALSE; + break; } } + return FALSE; } static bfd_boolean diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 254be5e59c..1a9c39fe69 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +2017-07-12 Nick Clifton + + Fix compile time warnings using gcc 7.1.1. + * dwarf.c (dwarf_vmatoa_1): Do not pass a NULL string pointer to + sprintf. + * srconv.c (walk_tree_type): Initialise the spare field of the + IT_dty structure. + 2017-07-11 Andreas Schwab * readelf.c (process_note): Print newline after description data diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 386cc17f7c..5f8922eb8a 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -217,7 +217,10 @@ dwarf_vmatoa_1 (const char *fmtch, dwarf_vma value, unsigned num_bytes) { char fmt[32]; - sprintf (fmt, "%%%s%s", DWARF_VMA_FMT, fmtch); + if (fmtch) + sprintf (fmt, "%%%s%s", DWARF_VMA_FMT, fmtch); + else + sprintf (fmt, "%%%s", DWARF_VMA_FMT); snprintf (ret, sizeof (buf[0].place), fmt, value); return ret; } diff --git a/binutils/srconv.c b/binutils/srconv.c index 87c503d249..a033bc85e3 100644 --- a/binutils/srconv.c +++ b/binutils/srconv.c @@ -874,13 +874,14 @@ static void walk_tree_type (struct coff_sfile *sfile, struct coff_symbol *symbol, struct coff_type *type, int nest) { - if (symbol->type->type == coff_function_type) - { - struct IT_dty dty; + struct IT_dty dty; - dty.end = 0; - dty.neg = 0x1001; + dty.spare = 0; + dty.end = 0; + dty.neg = 0x1001; + if (symbol->type->type == coff_function_type) + { sysroff_swap_dty_out (file, &dty); walk_tree_type_1 (sfile, symbol, type, nest); dty.end = 1; @@ -906,10 +907,6 @@ walk_tree_type (struct coff_sfile *sfile, struct coff_symbol *symbol, } else { - struct IT_dty dty; - - dty.end = 0; - dty.neg = 0x1001; sysroff_swap_dty_out (file, &dty); walk_tree_type_1 (sfile, symbol, type, nest); dty.end = 1; diff --git a/gas/ChangeLog b/gas/ChangeLog index 829256a943..e2c8f534bf 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2017-07-12 Nick Clifton + + Fix compile time warnings using gcc 7.1.1. + * config/tc-pru.c (md_assemble): Add continue statement after + handling 'E' operand character. + * config/tc-v850.c (md_assemble): Initialise the 'insn' variable. + 2017-07-05 James Greenhalgh * config/tc-arm.c (arm_cpus): Add Cortex-A55 and Cortex-A75. diff --git a/gas/config/tc-pru.c b/gas/config/tc-pru.c index 53ea7ef2b9..d5aa5a5146 100644 --- a/gas/config/tc-pru.c +++ b/gas/config/tc-pru.c @@ -296,9 +296,10 @@ typedef enum static PRU_MODE pru_mode = PRU_MODE_ASSEMBLE; /* This function is used to in self-checking mode - to check the assembled instruction - opcode should be the assembled opcode, and exp_opcode + to check the assembled instruction. + OPCODE should be the assembled opcode, and exp_opcode the parsed string representing the expected opcode. */ + static void pru_check_assembly (unsigned int opcode, const char *exp_opcode) { @@ -1698,6 +1699,8 @@ md_assemble (char *op_str) case 'E': pru_check_assembly (insn->insn_code, *argtk++); + continue; + default: BAD_CASE (*argp); } diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c index 7b5347480a..dd7b54ad28 100644 --- a/gas/config/tc-v850.c +++ b/gas/config/tc-v850.c @@ -2298,7 +2298,7 @@ md_assemble (char *str) const unsigned char *opindex_ptr; int next_opindex; int relaxable = 0; - unsigned long insn; + unsigned long insn = 0; unsigned long insn_size; char *f = NULL; int i; @@ -3065,7 +3065,6 @@ md_assemble (char *str) dwarf2_emit_insn (0); /* Write out the instruction. */ - if (relaxable && fc > 0) { insn_size = 2; -- 2.34.1