bfd_get_filename

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.
This commit is contained in:
Alan Modra 2019-09-06 12:07:05 +09:30
parent 6ade8373c9
commit b16c44debc
23 changed files with 87 additions and 49 deletions

View 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

View 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 */

View 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)

View 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)

View 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;

View 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.

View 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)
{
}
/* 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);

View 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));

View 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

View 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;

View 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;

View 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);

View 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;

View 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;

View 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;

View 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

View 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

View 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

View 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);

View 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];

View 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];

View 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

View 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. */