Change pointers from char * to unsigned char *
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 15 May 2015 17:29:03 +0000 (10:29 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 15 May 2015 17:29:03 +0000 (10:29 -0700)
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
binutils/readelf.c

index 2328f6e..4813a89 100644 (file)
@@ -1,5 +1,10 @@
 2015-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * readelf.c (dump_section_as_strings): Change pointers from
+       char * to unsigned char *.
+
+2015-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
        PR binutis/18386
        * doc/binutils.texi: Document -Mamd64 and -Mintel64.
 
index 4bb31eb..6369aa9 100644 (file)
@@ -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
            {