make xtensa_section_rename () take const char *

Xtensa uses it in several macros passing it a literal string, so its convenient
for the argument type to be const char *.  However some of the code in
symbols.c seems to assume tc_canonicalize_symbol_name () will return a non
const pointer, and some other target's implementations even modify the
argument, so it seems best to return a char * which means casting away const on
the argument when we return it instead of another string.

gas/ChangeLog:

2016-03-31  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

	* config/tc-xtensa.c (struct rename_section_struct): Make old_name
	const.
	(xtensa_section_rename): Make argument type const char *.
	* config/tc-xtensa.h (xtensa_section_rename): Adjust.
This commit is contained in:
Trevor Saunders 2016-03-20 01:37:55 -04:00
parent e2c7dcae81
commit e4a0c70877
3 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2016-03-31 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* config/tc-xtensa.c (struct rename_section_struct): Make old_name
const.
(xtensa_section_rename): Make argument type const char *.
* config/tc-xtensa.h (xtensa_section_rename): Adjust.
2016-03-31 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* config/tc-i960.c (parse_ldconst): Cast to char * when assigning to

View File

@ -13104,7 +13104,7 @@ copy_expr (expressionS *dst, const expressionS *src)
struct rename_section_struct
{
char *old_name;
const char *old_name;
char *new_name;
struct rename_section_struct *next;
};
@ -13177,7 +13177,7 @@ build_section_rename (const char *arg)
char *
xtensa_section_rename (char *name)
xtensa_section_rename (const char *name)
{
struct rename_section_struct *r = section_rename;
@ -13187,5 +13187,5 @@ xtensa_section_rename (char *name)
return r->new_name;
}
return name;
return (char *) name;
}

View File

@ -333,7 +333,7 @@ extern void xtensa_elf_section_change_hook (void);
extern int xtensa_unrecognized_line (int);
extern bfd_boolean xtensa_check_inside_bundle (void);
extern void xtensa_handle_align (fragS *);
extern char *xtensa_section_rename (char *);
extern char *xtensa_section_rename (const char *);
#define TARGET_FORMAT xtensa_target_format ()
#define TARGET_ARCH bfd_arch_xtensa