From fd8008d83ce379a8d3f3bb9c3b1a723e16c401d4 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 15 May 2015 10:29:03 -0700 Subject: [PATCH] Change pointers from char * to unsigned char * GCC 4.2 complaints: cc1: warnings being treated as errors binutils/readelf.c:12057: warning: dereferencing type-punned pointer will break strict-aliasing rules This patch silences this GCC warning. * readelf.c (dump_section_as_strings): Change pointers from char * to unsigned char *. --- binutils/ChangeLog | 5 +++++ binutils/readelf.c | 19 ++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 2328f6e..4813a89 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,5 +1,10 @@ 2015-05-15 H.J. Lu + * readelf.c (dump_section_as_strings): Change pointers from + char * to unsigned char *. + +2015-05-15 H.J. Lu + PR binutis/18386 * doc/binutils.texi: Document -Mamd64 and -Mintel64. diff --git a/binutils/readelf.c b/binutils/readelf.c index 4bb31eb..6369aa9 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -12004,13 +12004,14 @@ dump_section_as_strings (Elf_Internal_Shdr * section, FILE * file) { Elf_Internal_Shdr * relsec; bfd_size_type num_bytes; - char * data; - char * end; - char * real_start; - char * start; + unsigned char * data; + unsigned char * end; + unsigned char * real_start; + unsigned char * start; bfd_boolean some_strings_shown; - real_start = start = get_section_contents (section, file); + real_start = start = (unsigned char *) get_section_contents (section, + file); if (start == NULL) return; num_bytes = section->sh_size; @@ -12054,11 +12055,11 @@ dump_section_as_strings (Elf_Internal_Shdr * section, FILE * file) } if (uncompressed_size - && uncompress_section_contents ((unsigned char **) & start, + && uncompress_section_contents (& start, uncompressed_size, & new_size)) num_bytes = new_size; } - + /* If the section being dumped has relocations against it the user might be expecting these relocations to have been applied. Check for this case and issue a warning message in order to avoid confusion. @@ -12102,9 +12103,9 @@ dump_section_as_strings (Elf_Internal_Shdr * section, FILE * file) #endif if (maxlen > 0) { - print_symbol ((int) maxlen, data); + print_symbol ((int) maxlen, (const char *) data); putchar ('\n'); - data += strnlen (data, maxlen); + data += strnlen ((const char *) data, maxlen); } else { -- 2.7.4