bfd_get_filename
authorAlan Modra <amodra@gmail.com>
Fri, 6 Sep 2019 02:37:05 +0000 (12:07 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 6 Sep 2019 02:52:59 +0000 (12:22 +0930)
This macro says:
/* Cast from const char * to char * so that caller can assign to
   a char * without a warning.  */

I reckon that isn't such a good idea since it can result in char*
variables where const char* is appropriate.  Not very many places
need the char* cast.

bfd/
* aout-target.h (object_p): Formatting.
* bfd-in.h (bfd_get_filename): Don't cast to char*.
* corefile.c (generic_core_file_matches_executable_p): Constify
variables and remove cast.
* bfd-in2.h: Regenerate.
binutils/
* nm.c (print_object_filename_bsd, print_object_filename_sysv),
(print_object_filename_posix, print_archive_filename_bsd),
(print_archive_filename_sysv, print_archive_filename_posix),
(print_archive_member_bsd, print_archive_member_sysv),
(print_archive_member_posix): Constify parameter.
(struct output_fns <print_object_filename, print_archive_filename>),
(<print_archive_member>): Likewise.
* objcopy.c (copy_archive): Add cast for make_tempdir.
ld/
* emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
variable.
* emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
* emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
gdb/
* coffread.c (coff_symfile_read): Constify filename variable.
* dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
(elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
* gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
* solib.c (reload_shared_libraries_1): Likewise.
* symfile.c (reread_symbols): Likewise.
* solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
* solib-darwin.c (darwin_bfd_open): Likewise.
* symfile-mem.c (symbol_file_add_from_memory): Likewise.
sim/cris/
* sim-if.c (sim_open): Constify filename variable.

23 files changed:
bfd/ChangeLog
bfd/aout-target.h
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/corefile.c
binutils/ChangeLog
binutils/nm.c
binutils/objcopy.c
gdb/ChangeLog
gdb/coffread.c
gdb/dbxread.c
gdb/gdb_bfd.c
gdb/solib-aix.c
gdb/solib-darwin.c
gdb/solib.c
gdb/symfile-mem.c
gdb/symfile.c
ld/ChangeLog
ld/emultempl/elf32.em
ld/emultempl/pe.em
ld/emultempl/pep.em
sim/cris/ChangeLog
sim/cris/sim-if.c

index 8ed849d74d3143b1f46a03f9577a708ef15e326d..24f5e33833f0ea7a05e623ca3024953c7e5c5b0b 100644 (file)
@@ -1,3 +1,11 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * aout-target.h (object_p): Formatting.
+       * bfd-in.h (bfd_get_filename): Don't cast to char*.
+       * corefile.c (generic_core_file_matches_executable_p): Constify
+       variables and remove cast.
+       * bfd-in2.h: Regenerate.
+
 2019-09-05  Alan Modra  <amodra@gmail.com>
 
        * elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
index 2f3d5ea453223821201450af61632062caddce7c..99a82bb57a27c86c2f36b37bc3c156628f7685d7 100644 (file)
@@ -180,7 +180,7 @@ MY (object_p) (bfd *abfd)
 #ifndef S_IXUSR
 #define S_IXUSR 0100   /* Execute by owner.  */
 #endif
-      if (stat(abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
+      if (stat (abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
        abfd->flags |= EXEC_P;
     }
 #endif /* ENTRY_CAN_BE_ZERO */
index a5e95d14aa7da99f61e65c8dbf63c97f95c421f5..6544838a575e40c97e1c2fc07cf8b99e3e291aa1 100644 (file)
@@ -518,9 +518,7 @@ extern int bfd_stat (bfd *, struct stat *);
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-/* Cast from const char * to char * so that caller can assign to
-   a char * without a warning.  */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
 #define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 #define bfd_get_format(abfd) ((abfd)->format)
 #define bfd_get_target(abfd) ((abfd)->xvec->name)
index 63b4792818ce9c9ee0b17607df1ec60e06aa22a7..7b1cfbcf1a27951fb1b3a212995075dd6fdf985b 100644 (file)
@@ -525,9 +525,7 @@ extern int bfd_stat (bfd *, struct stat *);
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-/* Cast from const char * to char * so that caller can assign to
-   a char * without a warning.  */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
 #define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 #define bfd_get_format(abfd) ((abfd)->format)
 #define bfd_get_target(abfd) ((abfd)->xvec->name)
index aa43da5cae6a16da010ab998409bec1029e77c8c..b2b3d2e26ab8c38b92d97ff94eec1becaf617ace 100644 (file)
@@ -157,9 +157,9 @@ DESCRIPTION
 bfd_boolean
 generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
 {
-  char *exec;
-  char *core;
-  char *last_slash;
+  const char *exec;
+  const char *core;
+  const char *last_slash;
 
   if (exec_bfd == NULL || core_bfd == NULL)
     return TRUE;
@@ -169,7 +169,7 @@ generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
      non-const char *.  In this case, the assignement does not lead to
      breaking the const, as we're only reading the string.  */
 
-  core = (char *) bfd_core_file_failing_command (core_bfd);
+  core = bfd_core_file_failing_command (core_bfd);
   if (core == NULL)
     return TRUE;
 
index 98e660d167d3ff8e50b59e022f88b6a34761feeb..198380eaeab1f5096d14cd4e769692af46cb1ae1 100644 (file)
@@ -1,3 +1,14 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * nm.c (print_object_filename_bsd, print_object_filename_sysv),
+       (print_object_filename_posix, print_archive_filename_bsd),
+       (print_archive_filename_sysv, print_archive_filename_posix),
+       (print_archive_member_bsd, print_archive_member_sysv),
+       (print_archive_member_posix): Constify parameter.
+       (struct output_fns <print_object_filename, print_archive_filename>),
+       (<print_archive_member>): Likewise.
+       * objcopy.c (copy_archive): Add cast for make_tempdir.
+
 2019-08-29  Alan Modra  <amodra@gmail.com>
 
        * dwarf.c (check_uvalue): Remove unnecessary pointer checks.
index 5d3d647843493a5ad46f00c6b561563243290682..67b7ac7b1252024b206429f21c6586c4e7e3f758 100644 (file)
@@ -77,15 +77,15 @@ struct extended_symbol_info
   (sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize)
 
 /* The output formatting functions.  */
-static void print_object_filename_bsd (char *);
-static void print_object_filename_sysv (char *);
-static void print_object_filename_posix (char *);
-static void print_archive_filename_bsd (char *);
-static void print_archive_filename_sysv (char *);
-static void print_archive_filename_posix (char *);
-static void print_archive_member_bsd (char *, const char *);
-static void print_archive_member_sysv (char *, const char *);
-static void print_archive_member_posix (char *, const char *);
+static void print_object_filename_bsd (const char *);
+static void print_object_filename_sysv (const char *);
+static void print_object_filename_posix (const char *);
+static void print_archive_filename_bsd (const char *);
+static void print_archive_filename_sysv (const char *);
+static void print_archive_filename_posix (const char *);
+static void print_archive_member_bsd (const char *, const char *);
+static void print_archive_member_sysv (const char *, const char *);
+static void print_archive_member_posix (const char *, const char *);
 static void print_symbol_filename_bsd (bfd *, bfd *);
 static void print_symbol_filename_sysv (bfd *, bfd *);
 static void print_symbol_filename_posix (bfd *, bfd *);
@@ -98,13 +98,13 @@ static void print_symbol_info_posix (struct extended_symbol_info *, bfd *);
 struct output_fns
   {
     /* Print the name of an object file given on the command line.  */
-    void (*print_object_filename) (char *);
+    void (*print_object_filename) (const char *);
 
     /* Print the name of an archive file given on the command line.  */
-    void (*print_archive_filename) (char *);
+    void (*print_archive_filename) (const char *);
 
     /* Print the name of an archive member file.  */
-    void (*print_archive_member) (char *, const char *);
+    void (*print_archive_member) (const char *, const char *);
 
     /* Print the name of the file (and archive, if there is one)
        containing a symbol.  */
@@ -1357,14 +1357,14 @@ display_file (char *filename)
 /* Print the name of an object file given on the command line.  */
 
 static void
-print_object_filename_bsd (char *filename)
+print_object_filename_bsd (const char *filename)
 {
   if (filename_per_file && !filename_per_symbol)
     printf ("\n%s:\n", filename);
 }
 
 static void
-print_object_filename_sysv (char *filename)
+print_object_filename_sysv (const char *filename)
 {
   if (undefined_only)
     printf (_("\n\nUndefined symbols from %s:\n\n"), filename);
@@ -1379,7 +1379,7 @@ Name                  Value           Class        Type         Size
 }
 
 static void
-print_object_filename_posix (char *filename)
+print_object_filename_posix (const char *filename)
 {
   if (filename_per_file && !filename_per_symbol)
     printf ("%s:\n", filename);
@@ -1388,26 +1388,26 @@ print_object_filename_posix (char *filename)
 /* Print the name of an archive file given on the command line.  */
 
 static void
-print_archive_filename_bsd (char *filename)
+print_archive_filename_bsd (const char *filename)
 {
   if (filename_per_file)
     printf ("\n%s:\n", filename);
 }
 
 static void
-print_archive_filename_sysv (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_sysv (const char *filename ATTRIBUTE_UNUSED)
 {
 }
 
 static void
-print_archive_filename_posix (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_posix (const char *filename ATTRIBUTE_UNUSED)
 {
 }
 \f
 /* Print the name of an archive member file.  */
 
 static void
-print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
+print_archive_member_bsd (const char *archive ATTRIBUTE_UNUSED,
                          const char *filename)
 {
   if (!filename_per_symbol)
@@ -1415,7 +1415,7 @@ print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
 }
 
 static void
-print_archive_member_sysv (char *archive, const char *filename)
+print_archive_member_sysv (const char *archive, const char *filename)
 {
   if (undefined_only)
     printf (_("\n\nUndefined symbols from %s[%s]:\n\n"), archive, filename);
@@ -1430,7 +1430,7 @@ Name                  Value           Class        Type         Size
 }
 
 static void
-print_archive_member_posix (char *archive, const char *filename)
+print_archive_member_posix (const char *archive, const char *filename)
 {
   if (!filename_per_symbol)
     printf ("%s[%s]:\n", archive, filename);
index ebb99339aaa8023ca360e566be8a994947e6ea49..b702e52d987a260afe419bf27cd66dd8c45689d5 100644 (file)
@@ -3311,7 +3311,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
     }
 
   /* Make a temp directory to hold the contents.  */
-  dir = make_tempdir (bfd_get_filename (obfd));
+  dir = make_tempdir ((char *) bfd_get_filename (obfd));
   if (dir == NULL)
     fatal (_("cannot create tempdir for archive copying (error: %s)"),
           strerror (errno));
index f55d1a8e31f15495b88294fd51c9f1b496705db4..40bd4d0d02bae102ea88bfb8a9310845a988444b 100644 (file)
@@ -1,3 +1,15 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * coffread.c (coff_symfile_read): Constify filename variable.
+       * dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
+       (elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
+       * gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
+       * solib.c (reload_shared_libraries_1): Likewise.
+       * symfile.c (reread_symbols): Likewise.
+       * solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
+       * solib-darwin.c (darwin_bfd_open): Likewise.
+       * symfile-mem.c (symbol_file_add_from_memory): Likewise.
+
 2019-09-03  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * psymtab.c (print_partial_symbols): Handle missing domain_enum
index e24ab8d2f4bb50a133778f319ea2395a0408c4a5..a70461271e7284e22aed74d5c6a5a809aa0c07d2 100644 (file)
@@ -538,7 +538,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
   struct coff_symfile_info *info;
   bfd *abfd = objfile->obfd;
   coff_data_type *cdata = coff_data (abfd);
-  char *filename = bfd_get_filename (abfd);
+  const char *filename = bfd_get_filename (abfd);
   int val;
   unsigned int num_symbols;
   int symtab_offset;
index e339d1f7ecfaff594b0393080e38b7b7e8a77b61..df3ae5828afaa661ea9c34b8eeb67afab554769b 100644 (file)
@@ -587,7 +587,7 @@ dbx_symfile_init (struct objfile *objfile)
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *text_sect;
   unsigned char size_temp[DBX_STRINGTAB_SIZE_SIZE];
 
@@ -2939,7 +2939,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   unsigned int stabsize;
 
   /* Allocate struct to keep track of stab reading.  */
@@ -3026,7 +3026,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
 
   stabsread_new_init ();
 
@@ -3107,7 +3107,7 @@ stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *stabsect;
   asection *stabstrsect;
   asection *text_sect;
index 0334523ef11764e8209ac1ebd049fa4b76eb3cba..d3b4c749f5066e81a0b7049c7e55e677ab717a6a 100644 (file)
@@ -504,7 +504,7 @@ static int
 gdb_bfd_close_or_warn (struct bfd *abfd)
 {
   int ret;
-  char *name = bfd_get_filename (abfd);
+  const char *name = bfd_get_filename (abfd);
 
   bfd_map_over_sections (abfd, free_one_bfd_section, NULL);
 
index d13b651944150fb0c7749558f2dafd95383020e3..2b5444293e26eaa6a2f7cde1899f1351880645de 100644 (file)
@@ -643,9 +643,9 @@ solib_aix_bfd_open (const char *pathname)
      along with appended parenthesized member name in order to allow commands
      listing all shared libraries to display.  Otherwise, we would only be
      displaying the name of the archive member object.  */
-  xfree (bfd_get_filename (object_bfd.get ()));
+  xfree ((char *) bfd_get_filename (object_bfd.get ()));
   object_bfd->filename = xstrprintf ("%s%s",
-                                     bfd_get_filename (archive_bfd.get ()),
+                                    bfd_get_filename (archive_bfd.get ()),
                                     sep);
 
   return object_bfd;
index 443ebb64a47da2135d2165cbc48facbfa4a253ba..3dd30d2aa3c003a2385e9714117ba8364be05734 100644 (file)
@@ -670,7 +670,7 @@ darwin_bfd_open (const char *pathname)
   /* The current filename for fat-binary BFDs is a name generated
      by BFD, usually a string containing the name of the architecture.
      Reset its value to the actual filename.  */
-  xfree (bfd_get_filename (res.get ()));
+  xfree ((char *) bfd_get_filename (res.get ()));
   res->filename = xstrdup (pathname);
 
   return res;
index 29a17ad5d496bd6f4b68e4e978321d7037877842..86000f6d61d4ec7ee7915ffc84f728f50b479f68 100644 (file)
@@ -1296,7 +1296,7 @@ reload_shared_libraries_1 (int from_tty)
 
   for (so = so_list_head; so != NULL; so = so->next)
     {
-      char *found_pathname = NULL;
+      const char *found_pathname = NULL;
       int was_loaded = so->symbols_loaded;
       symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
 
index 51a75541e52d22514c512b0f652a8e4d4a44c436..6d1deae1e0ec6d349573b8d1972a6854f90ab201 100644 (file)
@@ -101,7 +101,7 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
   /* Manage the new reference for the duration of this function.  */
   gdb_bfd_ref_ptr nbfd_holder = gdb_bfd_ref_ptr::new_reference (nbfd);
 
-  xfree (bfd_get_filename (nbfd));
+  xfree ((char *) bfd_get_filename (nbfd));
   if (name == NULL)
     nbfd->filename = xstrdup ("shared object read from target memory");
   else
index 8843781e13ae0cac58fde58ede2b2e3676aec55c..3cd514409b08928f3da014ef61f291f9eab79791 100644 (file)
@@ -2548,7 +2548,7 @@ reread_symbols (void)
          /* Clean up any state BFD has sitting around.  */
          {
            gdb_bfd_ref_ptr obfd (objfile->obfd);
-           char *obfd_filename;
+           const char *obfd_filename;
 
            obfd_filename = bfd_get_filename (objfile->obfd);
            /* Open the new BFD before freeing the old one, so that
index 37836aa70a84e13ba9db56e2f564358c3a83dc34..13abd72d8394141d426c3b3789a522763f406b98 100644 (file)
@@ -1,3 +1,10 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
+       variable.
+       * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
+       * emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
+
 2019-09-05  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR ld/24574
index b3c012c46de32abddbf1eac2f5f90c33f1b61b19..52db0fde1dfcad1f9433e381bd74c5028992a220 100644 (file)
@@ -552,7 +552,7 @@ gld${EMULATION_NAME}_search_needed (const char *path,
             FIXME: The code could be a lot cleverer about allocating space
             for the processed string.  */
          char *    end = strchr (var, '/');
-         char *    replacement = NULL;
+         const char *replacement = NULL;
          char *    v = var + 1;
          char *    freeme = NULL;
          unsigned  flen = strlen (filename);
index 834215ac8505bf34ed89c39aac63a880d55b4c88..49bb66b906a70dd916ca374830195d1946e0f642 100644 (file)
@@ -1513,7 +1513,7 @@ gld_${EMULATION_NAME}_after_open (void)
                      {
                        struct bfd_symbol *s;
                        struct bfd_link_hash_entry * blhe;
-                       char *other_bfd_filename;
+                       const char *other_bfd_filename;
                        char *n;
 
                        s = (relocs[i]->sym_ptr_ptr)[0];
index 9eb7cd7a4b538be05246711b74d4ff29893874f0..4daa32b5c618b2cf4db9666f4a23ff526c5cb10e 100644 (file)
@@ -1480,7 +1480,7 @@ gld_${EMULATION_NAME}_after_open (void)
                      {
                        struct bfd_symbol *s;
                        struct bfd_link_hash_entry * blhe;
-                       char *other_bfd_filename;
+                       const char *other_bfd_filename;
                        char *n;
 
                        s = (relocs[i]->sym_ptr_ptr)[0];
index 5e26f3ddf8bb3168e92be2e06a346fa7e3ed0966..d37fc8f56d8fa41871d32188142fab6ee5788592 100644 (file)
@@ -1,3 +1,7 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+       * sim-if.c (sim_open): Constify filename variable.
+
 2018-12-06  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * Makefile.in: Replace uses of CGEN_CPU_DIR with CPU_DIR, and
index 054cce557b1bf69625879b52e2e221287264aa08..1a5d421caffe9f9bf7d7425e5803384ea24dc120 100644 (file)
@@ -746,7 +746,7 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
      specified.  */
   if (abfd != NULL && !cris_bare_iron)
     {
-      char *name = bfd_get_filename (abfd);
+      const char *name = bfd_get_filename (abfd);
       char **my_environ = GET_ENVIRON ();
       /* We use these maps to give the same behavior as the old xsim
         simulator.  */