[PATCH 7/7] enable -Wwrite-strings for gas

Trevor Saunders tbsaunde@tbsaunde.org
Fri Apr 1 13:10:00 GMT 2016


On Fri, Apr 01, 2016 at 11:09:58PM +1030, Alan Modra wrote:
> On Fri, Apr 01, 2016 at 12:21:46PM +0100, Jiong Wang wrote:
> > This caused build failures when binutils-gdb is configured with
> > --disable-nls, for example:
> 
> Constify more

ah, nice, and thanks!

clearly I'm not awake enough yet.

Trev

> 
> 	* cgen.c (weak_operand_overflow_check): Return const char*.
> 	* messages.c (as_internal_value_out_of_range): Formatting.
> 	(as_warn_value_out_of_range): Consify prefix param.
> 	(as_bad_value_out_of_range): Likewise.
> 	* read.c (s_errwarn): Constify msg..
> 	(s_float_space, float_cons): ..and err.
> 	* as.h (as_warn_value_out_of_range, as_bad_value_out_of_range,
> 	ieee_md_atof, vax_md_atof): Update prototypes.
> 	* tc.h (md_atof): Update prototype.
> 	* config/atof-ieee.c (ieee_md_atof): Return const char*.
> 	* config/atof-vax.c (vax_md_atof): Likewise.
> 	* config/obj-elf.c (obj_elf_parse_section_letters): Constify bad_msg.
> 	* config/tc-aarch64.c (md_atof): Return const char*.
> 	* config/tc-alpha.c (s_alpha_section_name): Likewise.
> 	(s_alpha_comm): Constify sec_name.
> 	(section_name): Constify.
> 	(s_alpha_section): Consify name..
> 	(alpha_elf_section_letter): ..and ptr_msg param..
> 	(md_atof): ..and return.
> 	* config/tc-alpha.h (alpha_elf_section_letter): Update prototype.
> 	* config/tc-arc.c (md_atof): Return const char*.
> 	* config/tc-arm.c (md_atof): Likewise.
> 	* config/tc-avr.c (md_atof): Likewise.
> 	* config/tc-bfin.c (md_atof): Likewise.
> 	* config/tc-cr16.c (md_atof): Likewise.
> 	* config/tc-cris.c (md_atof): Likewise.
> 	* config/tc-crx.c (md_atof): Likewise.
> 	* config/tc-d10v.c (md_atof): Likewise.
> 	* config/tc-d30v.c (md_atof): Likewise.
> 	* config/tc-dlx.c (md_atof): Likewise.
> 	* config/tc-epiphany.c (md_atof): Likewise.
> 	* config/tc-fr30.c (md_atof): Likewise.
> 	* config/tc-frv.c (md_atof): Likewise.
> 	* config/tc-ft32.c (md_atof): Likewise.
> 	* config/tc-h8300.c (md_atof): Likewise.
> 	* config/tc-hppa.c (struct default_subspace_dict): Constify name.
> 	(struct default_space_dict): Likewise.
> 	(create_new_space): Constify name param.
> 	(create_new_subspace): Likewise.
> 	(is_defined_space, is_defined_subspace): Likewise.
> 	(pa_parse_space_stmt): Constify space_name param.
> 	(md_atof): Return const char*.
> 	(pa_spaces_begin): Constify name.
> 	* config/tc-i370.c (md_atof): Return const char*.
> 	* config/tc-i386.c (md_atof): Likewise.
> 	(x86_64_section_letter): Constify ptr_msg param.
> 	* config/tc-i386.h (x86_64_section_letter): Update prototype.
> 	* config/tc-i860.c (struct i860_it): Constify error.
> 	(md_atof): Return const char*.
> 	* config/tc-i960.c (md_atof): Likewise.
> 	* config/tc-ia64.c (md_atof): Likewise.
> 	(ia64_elf_section_letter): Constify ptr_msg param.
> 	* config/tc-ia64.h (ia64_elf_section_letter): Update prototype.
> 	* config/tc-ip2k.c (md_atof): Return const char*.
> 	* config/tc-iq2000.c (md_atof): Likewise.
> 	* config/tc-lm32.c (md_atof): Likewise.
> 	* config/tc-m32c.c (md_atof): Likewise.
> 	* config/tc-m32r.c (md_atof): Likewise.
> 	* config/tc-m68hc11.c (md_atof): Likewise.
> 	* config/tc-m68k.c (md_atof): Likewise.
> 	* config/tc-mcore.c (md_atof): Likewise.
> 	* config/tc-mep.c (md_atof): Likewise.
> 	(mep_elf_section_letter): Constify ptr_msg param.
> 	* config/tc-mep.h (mep_elf_section_letter): Update prototype.
> 	* config/tc-metag.c (md_atof): Return const char*.
> 	* config/tc-microblaze.c (md_atof): Likewise.
> 	* config/tc-microblaze.h (md_atof): Delete prototype.
> 	* config/tc-mips.c (mips_parse_argument_token): Constify err.
> 	(md_atof): Return const char*.
> 	* config/tc-mmix.c (md_atof): Likewise.
> 	* config/tc-mn10200.c (md_atof): Likewise.
> 	* config/tc-mn10300.c (md_atof): Likewise.
> 	* config/tc-moxie.c (md_atof): Likewise.
> 	* config/tc-msp430.c (md_atof): Likewise.
> 	* config/tc-mt.c (md_atof): Likewise.
> 	* config/tc-nds32.c (md_atof): Likewise.
> 	* config/tc-nios2.c (md_atof): Likewise.
> 	(nios2_elf_section_letter): Constify ptr_msg param.
> 	* config/tc-nios2.h (nios2_elf_section_letter): Update prototype.
> 	* config/tc-ns32k.c (md_atof): Return const char*.
> 	* config/tc-or1k.c (md_atof): Likewise.
> 	* config/tc-pdp11.c (struct pdp11_code): Constify error.
> 	(md_atof): Return const char*.
> 	* config/tc-pj.c (md_atof): Likewise.
> 	* config/tc-ppc.c (md_atof): Likewise.
> 	* config/tc-rl78.c (md_atof): Likewise.
> 	* config/tc-rx.c (md_atof): Likewise.
> 	* config/tc-s390.c (md_atof): Likewise.
> 	* config/tc-score.c (s3_atof, md_atof): Likewise.
> 	* config/tc-sh.c (md_atof): Likewise.
> 	* config/tc-sparc.c (struct sparc_it): Constify error.
> 	(md_atof): Return const char*.
> 	* config/tc-spu.c (md_atof): Likewise.
> 	* config/tc-tic30.c (md_atof): Likewise.
> 	* config/tc-tic4x.c (md_atof): Likewise.
> 	* config/tc-tic54x.c (md_atof): Likewise.
> 	* config/tc-tic6x.c (md_atof): Likewise.
> 	* config/tc-tilegx.c (md_atof): Likewise.
> 	* config/tc-tilepro.c (md_atof): Likewise.
> 	* config/tc-v850.c (parse_register_list, md_atof): Likewise.
> 	* config/tc-vax.c (md_atof): Likewise.
> 	* config/tc-visium.c (md_atof): Likewise.
> 	* config/tc-xc16x.c (md_atof): Likewise.
> 	* config/tc-xgate.c (md_atof): Likewise.
> 	* config/tc-xstormy16.c (md_atof): Likewise.
> 	* config/tc-xtensa.c (md_atof): Likewise.
> 	* config/tc-z80.c (md_atof): Likewise.
> 	* config/tc-z8k.c (md_atof): Likewise.
> 
> diff --git a/gas/as.h b/gas/as.h
> index ba2fb7d..9ff8bb8 100644
> --- a/gas/as.h
> +++ b/gas/as.h
> @@ -477,15 +477,15 @@ void   as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
>  void   sprint_value (char *, addressT);
>  int    had_errors (void);
>  int    had_warnings (void);
> -void   as_warn_value_out_of_range (char *, offsetT, offsetT, offsetT,
> +void   as_warn_value_out_of_range (const char *, offsetT, offsetT, offsetT,
>  				   const char *, unsigned);
> -void   as_bad_value_out_of_range (char *, offsetT, offsetT, offsetT,
> +void   as_bad_value_out_of_range (const char *, offsetT, offsetT, offsetT,
>  				  const char *, unsigned);
>  void   print_version_id (void);
>  char * app_push (void);
>  char * atof_ieee (char *, int, LITTLENUM_TYPE *);
> -char * ieee_md_atof (int, char *, int *, bfd_boolean);
> -char * vax_md_atof (int, char *, int *);
> +const char * ieee_md_atof (int, char *, int *, bfd_boolean);
> +const char * vax_md_atof (int, char *, int *);
>  char * input_scrub_include_file (const char *, char *);
>  void   input_scrub_insert_line (const char *);
>  void   input_scrub_insert_file (char *);
> diff --git a/gas/cgen.c b/gas/cgen.c
> index 41eaa55..c04a921 100644
> --- a/gas/cgen.c
> +++ b/gas/cgen.c
> @@ -37,7 +37,7 @@ static unsigned long gas_cgen_encode_addend
>     const unsigned long, const unsigned long, const unsigned long, \
>     const unsigned long);
>  
> -static char * weak_operand_overflow_check
> +static const char * weak_operand_overflow_check
>    (const expressionS *, const CGEN_OPERAND *);
>  
>  static void queue_fixup_recursively
> @@ -748,7 +748,7 @@ gas_cgen_encode_addend (const unsigned long start,    /* in bits */
>     overflow, so signal it by returning an error string. Any other case is
>     ambiguous, so we assume it's OK and return NULL.  */
>  
> -static char *
> +static const char *
>  weak_operand_overflow_check (const expressionS *  exp,
>  			     const CGEN_OPERAND * operand)
>  {
> diff --git a/gas/config/atof-ieee.c b/gas/config/atof-ieee.c
> index 92c367d..636549e 100644
> --- a/gas/config/atof-ieee.c
> +++ b/gas/config/atof-ieee.c
> @@ -710,7 +710,7 @@ extern const char FLT_CHARS[];
>  
>     An error message is returned, or a NULL pointer if everything went OK.  */
>  
> -char *
> +const char *
>  ieee_md_atof (int type,
>  	      char *litP,
>  	      int *sizeP,
> diff --git a/gas/config/atof-vax.c b/gas/config/atof-vax.c
> index 7c05390..8ca80b0 100644
> --- a/gas/config/atof-vax.c
> +++ b/gas/config/atof-vax.c
> @@ -387,7 +387,7 @@ flonum_gen2vax (int format_letter,	/* One of 'd' 'f' 'g' 'h'.  */
>  
>  #define MAXIMUM_NUMBER_OF_LITTLENUMS  8 	/* For .hfloats.  */
>  
> -char *
> +const char *
>  vax_md_atof (int what_statement_type,
>  	     char *literalP,
>  	     int *sizeP)
> diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
> index 40c6e35..1d07d4b 100644
> --- a/gas/config/obj-elf.c
> +++ b/gas/config/obj-elf.c
> @@ -815,7 +815,8 @@ obj_elf_parse_section_letters (char *str, size_t len, bfd_boolean *is_clone)
>  	    }
>  	default:
>  	  {
> -	    char *bad_msg = _("unrecognized .section attribute: want a,e,w,x,M,S,G,T or number");
> +	    const char *bad_msg = _("unrecognized .section attribute:"
> +				    " want a,e,w,x,M,S,G,T or number");
>  #ifdef md_elf_section_letter
>  	    bfd_vma md_attr = md_elf_section_letter (*str, &bad_msg);
>  	    if (md_attr != (bfd_vma) -1)
> diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
> index 0e00259..14b6011 100644
> --- a/gas/config/tc-aarch64.c
> +++ b/gas/config/tc-aarch64.c
> @@ -573,7 +573,7 @@ my_get_expression (expressionS * ep, char **str, int prefix_mode,
>     of LITTLENUMS emitted is stored in *SIZEP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
> index 5fa1403..5fe9cb6 100644
> --- a/gas/config/tc-alpha.c
> +++ b/gas/config/tc-alpha.c
> @@ -578,7 +578,7 @@ static void assemble_insn (const struct alpha_opcode *, const expressionS *, int
>  static void emit_insn (struct alpha_insn *);
>  static void assemble_tokens (const char *, const expressionS *, int, int);
>  #ifdef OBJ_EVAX
> -static char *s_alpha_section_name (void);
> +static const char *s_alpha_section_name (void);
>  static symbolS *add_to_link_pool (symbolS *, offsetT);
>  #endif
>  
> @@ -3552,7 +3552,7 @@ s_alpha_comm (int ignore ATTRIBUTE_UNUSED)
>           The symbol is effectively an alias for the section name.  */
>  
>        segT sec;
> -      char *sec_name;
> +      const char *sec_name;
>        symbolS *sec_symbol;
>        segT current_seg = now_seg;
>        subsegT current_subseg = now_subseg;
> @@ -4184,7 +4184,7 @@ alpha_cfi_frame_initial_instructions (void)
>  #ifdef OBJ_EVAX
>  
>  /* Get name of section.  */
> -static char *
> +static const char *
>  s_alpha_section_name (void)
>  {
>    char *name;
> @@ -4292,13 +4292,14 @@ s_alpha_section_word (char *str, size_t len)
>  
>  #define EVAX_SECTION_COUNT 5
>  
> -static char *section_name[EVAX_SECTION_COUNT + 1] =
> +static const char *section_name[EVAX_SECTION_COUNT + 1] =
>    { "NULL", ".rdata", ".comm", ".link", ".ctors", ".dtors" };
>  
>  static void
>  s_alpha_section (int secid)
>  {
> -  char *name, *beg;
> +  const char *name;
> +  char *beg;
>    segT sec;
>    flagword vms_flags = 0;
>    symbolS *symbol;
> @@ -5340,7 +5341,7 @@ select_gp_value (void)
>  /* Map 's' to SHF_ALPHA_GPREL.  */
>  
>  bfd_vma
> -alpha_elf_section_letter (int letter, char **ptr_msg)
> +alpha_elf_section_letter (int letter, const char **ptr_msg)
>  {
>    if (letter == 's')
>      return SHF_ALPHA_GPREL;
> @@ -5579,10 +5580,10 @@ md_section_align (segT seg, valueT size)
>     of LITTLENUMS emitted is stored in *SIZEP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
> -  extern char *vax_md_atof (int, char *, int *);
> +  extern const char *vax_md_atof (int, char *, int *);
>  
>    switch (type)
>      {
> diff --git a/gas/config/tc-alpha.h b/gas/config/tc-alpha.h
> index 326f23b..1a7badc 100644
> --- a/gas/config/tc-alpha.h
> +++ b/gas/config/tc-alpha.h
> @@ -122,7 +122,7 @@ extern void alpha_frob_file_before_adjust (void);
>  
>  #ifdef OBJ_ELF
>  #define md_elf_section_letter		alpha_elf_section_letter
> -extern bfd_vma alpha_elf_section_letter (int, char **);
> +extern bfd_vma alpha_elf_section_letter (int, const char **);
>  #define md_elf_section_flags		alpha_elf_section_flags
>  extern flagword alpha_elf_section_flags (flagword, bfd_vma, int);
>  #endif
> diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
> index 3f4e2d3..f3f7e26 100644
> --- a/gas/config/tc-arc.c
> +++ b/gas/config/tc-arc.c
> @@ -2848,7 +2848,7 @@ md_undefined_symbol (char *name)
>     of LITTLENUMS emitted is stored in *sizeP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
> index 2c42a13..2ccc053 100644
> --- a/gas/config/tc-arm.c
> +++ b/gas/config/tc-arm.c
> @@ -1077,7 +1077,7 @@ my_get_expression (expressionS * ep, char ** str, int prefix_mode)
>  
>     ??? The format of 12 byte floats is uncertain according to gcc's arm.h.  */
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    int prec;
> diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
> index b35061e..852002f 100644
> --- a/gas/config/tc-avr.c
> +++ b/gas/config/tc-avr.c
> @@ -628,7 +628,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return NULL;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-bfin.c b/gas/config/tc-bfin.c
> index 6dce28c..caa89c6 100644
> --- a/gas/config/tc-bfin.c
> +++ b/gas/config/tc-bfin.c
> @@ -798,7 +798,7 @@ md_section_align (segT segment, valueT size)
>  }
>  
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-cr16.c b/gas/config/tc-cr16.c
> index 45201ca..119f130 100644
> --- a/gas/config/tc-cr16.c
> +++ b/gas/config/tc-cr16.c
> @@ -715,7 +715,7 @@ md_show_usage (FILE *stream ATTRIBUTE_UNUSED)
>    return;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-cris.c b/gas/config/tc-cris.c
> index 89343f0..536e6cb 100644
> --- a/gas/config/tc-cris.c
> +++ b/gas/config/tc-cris.c
> @@ -3591,7 +3591,7 @@ cris_get_reloc_suffix (char **cPP, bfd_reloc_code_real_type *relocp,
>     code as assembly code, but if they do, they should be able enough to
>     find out the correct bit patterns and use them.  */
>  
> -char *
> +const char *
>  md_atof (int type ATTRIBUTE_UNUSED, char *litp ATTRIBUTE_UNUSED,
>  	 int *sizep ATTRIBUTE_UNUSED)
>  {
> diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c
> index 40a2806..7c8d7ed 100644
> --- a/gas/config/tc-crx.c
> +++ b/gas/config/tc-crx.c
> @@ -464,7 +464,7 @@ md_show_usage (FILE *stream ATTRIBUTE_UNUSED)
>    return;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
> index f7f213a..e2a2caa 100644
> --- a/gas/config/tc-d10v.c
> +++ b/gas/config/tc-d10v.c
> @@ -251,7 +251,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c
> index 81051f0..ae870ee 100644
> --- a/gas/config/tc-d30v.c
> +++ b/gas/config/tc-d30v.c
> @@ -285,7 +285,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-dlx.c b/gas/config/tc-dlx.c
> index 970e297..a806fe6 100644
> --- a/gas/config/tc-dlx.c
> +++ b/gas/config/tc-dlx.c
> @@ -974,7 +974,7 @@ md_assemble (char *str)
>     but I'm not sure.  Dlx will not use it anyway, so I just leave it
>     here for now.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-epiphany.c b/gas/config/tc-epiphany.c
> index 132a78f..f35198e 100644
> --- a/gas/config/tc-epiphany.c
> +++ b/gas/config/tc-epiphany.c
> @@ -1012,7 +1012,7 @@ md_cgen_lookup_reloc (const CGEN_INSN *insn ATTRIBUTE_UNUSED,
>  /* Equal to MAX_PRECISION in atof-ieee.c.  */
>  #define MAX_LITTLENUMS 6
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-fr30.c b/gas/config/tc-fr30.c
> index ad3ffd0..058733b 100644
> --- a/gas/config/tc-fr30.c
> +++ b/gas/config/tc-fr30.c
> @@ -317,7 +317,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>    number_to_chars_bigendian (buf, val, n);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-frv.c b/gas/config/tc-frv.c
> index 24baa96..61d17a7 100644
> --- a/gas/config/tc-frv.c
> +++ b/gas/config/tc-frv.c
> @@ -1513,7 +1513,7 @@ frv_md_number_to_chars (char *buf, valueT val, int n)
>    number_to_chars_bigendian (buf, val, n);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-ft32.c b/gas/config/tc-ft32.c
> index 327b393..56c0a68 100644
> --- a/gas/config/tc-ft32.c
> +++ b/gas/config/tc-ft32.c
> @@ -408,7 +408,7 @@ md_assemble (char *str)
>     of LITTLENUMS emitted is stored in *SIZEP .  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int prec;
> diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c
> index f50f497..edca456 100644
> --- a/gas/config/tc-h8300.c
> +++ b/gas/config/tc-h8300.c
> @@ -2101,7 +2101,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>  
>  /* Various routines to kill one day.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
> index c2001bd..82d33c2 100644
> --- a/gas/config/tc-hppa.c
> +++ b/gas/config/tc-hppa.c
> @@ -350,7 +350,7 @@ typedef struct space_dictionary_chain sd_chain_struct;
>  struct default_subspace_dict
>    {
>      /* Name of the subspace.  */
> -    char *name;
> +    const char *name;
>  
>      /* FIXME.  Is this still needed?  */
>      char defined;
> @@ -403,7 +403,7 @@ struct default_subspace_dict
>  struct default_space_dict
>    {
>      /* Name of the space.  */
> -    char *name;
> +    const char *name;
>  
>      /* Space number.  It is possible to identify spaces within
>         assembly code numerically!  */
> @@ -503,27 +503,27 @@ static void pa_align (int);
>  static void pa_space (int);
>  static void pa_spnum (int);
>  static void pa_subspace (int);
> -static sd_chain_struct *create_new_space (char *, int, int,
> -						  int, int, int,
> -						  asection *, int);
> +static sd_chain_struct *create_new_space (const char *, int, int,
> +					  int, int, int,
> +					  asection *, int);
>  static ssd_chain_struct *create_new_subspace (sd_chain_struct *,
> -						      char *, int, int,
> -						      int, int, int, int,
> -						      int, int, int, int,
> -						      int, asection *);
> +					      const char *, int, int,
> +					      int, int, int, int,
> +					      int, int, int, int,
> +					      int, asection *);
>  static ssd_chain_struct *update_subspace (sd_chain_struct *,
> -						  char *, int, int, int,
> -						  int, int, int, int,
> -						  int, int, int, int,
> -						  asection *);
> -static sd_chain_struct *is_defined_space (char *);
> -static ssd_chain_struct *is_defined_subspace (char *);
> +					  char *, int, int, int,
> +					  int, int, int, int,
> +					  int, int, int, int,
> +					  asection *);
> +static sd_chain_struct *is_defined_space (const char *);
> +static ssd_chain_struct *is_defined_subspace (const char *);
>  static sd_chain_struct *pa_segment_to_space (asection *);
>  static ssd_chain_struct *pa_subsegment_to_subspace (asection *,
>  							    subsegT);
>  static sd_chain_struct *pa_find_space_by_number (int);
>  static unsigned int pa_subspace_start (sd_chain_struct *, int);
> -static sd_chain_struct *pa_parse_space_stmt (char *, int);
> +static sd_chain_struct *pa_parse_space_stmt (const char *, int);
>  #endif
>  
>  /* File and globally scoped variable declarations.  */
> @@ -1319,7 +1319,7 @@ pa_parse_nullif (char **s)
>    return nullif;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> @@ -7080,7 +7080,7 @@ pa_check_current_space_and_subspace (void)
>     by the parameters to the .SPACE directive.  */
>  
>  static sd_chain_struct *
> -pa_parse_space_stmt (char *space_name, int create_flag)
> +pa_parse_space_stmt (const char *space_name, int create_flag)
>  {
>    char *name, *ptemp, c;
>    char loadable, defined, private, sort;
> @@ -7590,7 +7590,7 @@ pa_spaces_begin (void)
>    i = 0;
>    while (pa_def_spaces[i].name)
>      {
> -      char *name;
> +      const char *name;
>  
>        /* Pick the right name to use for the new section.  */
>        name = pa_def_spaces[i].name;
> @@ -7606,7 +7606,7 @@ pa_spaces_begin (void)
>    i = 0;
>    while (pa_def_subspaces[i].name)
>      {
> -      char *name;
> +      const char *name;
>        int applicable, subsegment;
>        asection *segment = NULL;
>        sd_chain_struct *space;
> @@ -7707,7 +7707,7 @@ pa_spaces_begin (void)
>     by the given parameters.  */
>  
>  static sd_chain_struct *
> -create_new_space (char *name,
> +create_new_space (const char *name,
>  		  int spnum,
>  		  int loadable ATTRIBUTE_UNUSED,
>  		  int defined,
> @@ -7789,7 +7789,7 @@ create_new_space (char *name,
>  
>  static ssd_chain_struct *
>  create_new_subspace (sd_chain_struct *space,
> -		     char *name,
> +		     const char *name,
>  		     int loadable ATTRIBUTE_UNUSED,
>  		     int code_only ATTRIBUTE_UNUSED,
>  		     int comdat,
> @@ -7893,7 +7893,7 @@ update_subspace (sd_chain_struct *space,
>     NULL if no such space exists.  */
>  
>  static sd_chain_struct *
> -is_defined_space (char *name)
> +is_defined_space (const char *name)
>  {
>    sd_chain_struct *chain_pointer;
>  
> @@ -7942,7 +7942,7 @@ pa_segment_to_space (asection *seg)
>     own subspace.  */
>  
>  static ssd_chain_struct *
> -is_defined_subspace (char *name)
> +is_defined_subspace (const char *name)
>  {
>    sd_chain_struct *space_chain;
>    ssd_chain_struct *subspace_chain;
> diff --git a/gas/config/tc-i370.c b/gas/config/tc-i370.c
> index 1b419e8..7e2f146 100644
> --- a/gas/config/tc-i370.c
> +++ b/gas/config/tc-i370.c
> @@ -2352,7 +2352,7 @@ i370_tc (int ignore ATTRIBUTE_UNUSED)
>      }
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litp, int *sizep)
>  {
>    /* 360/370/390 have two float formats: an old, funky 360 single-precision
> diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
> index 55ca5c3..ce5304d 100644
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -9378,7 +9378,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
>    md_number_to_chars (p, value, fixP->fx_size);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    /* This outputs the LITTLENUMs in REVERSE order;
> @@ -10781,7 +10781,7 @@ tc_pe_dwarf2_emit_offset (symbolS *symbol, unsigned int size)
>  /* For ELF on x86-64, add support for SHF_X86_64_LARGE.  */
>  
>  bfd_vma
> -x86_64_section_letter (int letter, char **ptr_msg)
> +x86_64_section_letter (int letter, const char **ptr_msg)
>  {
>    if (flag_code == CODE_64BIT)
>      {
> diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
> index 006dacb..7a987d8 100644
> --- a/gas/config/tc-i386.h
> +++ b/gas/config/tc-i386.h
> @@ -310,7 +310,7 @@ extern void i386_solaris_fix_up_eh_frame (segT);
>  
>  /* Support for SHF_X86_64_LARGE */
>  extern bfd_vma x86_64_section_word (char *, size_t);
> -extern bfd_vma x86_64_section_letter (int, char **);
> +extern bfd_vma x86_64_section_letter (int, const char **);
>  #define md_elf_section_letter(LETTER, PTR_MSG)	x86_64_section_letter (LETTER, PTR_MSG)
>  #define md_elf_section_word(STR, LEN)		x86_64_section_word (STR, LEN)
>  
> diff --git a/gas/config/tc-i860.c b/gas/config/tc-i860.c
> index ea21669..85855e9 100644
> --- a/gas/config/tc-i860.c
> +++ b/gas/config/tc-i860.c
> @@ -53,7 +53,7 @@ static char reg_prefix;
>  
>  struct i860_it
>  {
> -  char *error;
> +  const char *error;
>    unsigned long opcode;
>    enum expand_type expand;
>    struct i860_fi
> @@ -1010,7 +1010,7 @@ i860_get_expression (char *str)
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-i960.c b/gas/config/tc-i960.c
> index 667ab4c..1335da1 100644
> --- a/gas/config/tc-i960.c
> +++ b/gas/config/tc-i960.c
> @@ -1707,7 +1707,7 @@ md_number_to_chars (char *buf,
>    number_to_chars_littleendian (buf, value, n);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
> index a50b61e..8da09e0 100644
> --- a/gas/config/tc-ia64.c
> +++ b/gas/config/tc-ia64.c
> @@ -856,7 +856,7 @@ set_section (char *name)
>  /* Map 's' to SHF_IA_64_SHORT.  */
>  
>  bfd_vma
> -ia64_elf_section_letter (int letter, char **ptr_msg)
> +ia64_elf_section_letter (int letter, const char **ptr_msg)
>  {
>    if (letter == 's')
>      return SHF_IA_64_SHORT;
> @@ -11576,7 +11576,7 @@ tc_gen_reloc (asection *sec ATTRIBUTE_UNUSED, fixS *fixp)
>  
>  #define MAX_LITTLENUMS 5
>  
> -char *
> +const char *
>  md_atof (int type, char *lit, int *size)
>  {
>    LITTLENUM_TYPE words[MAX_LITTLENUMS];
> diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h
> index 4858c27..dcf07ec 100644
> --- a/gas/config/tc-ia64.h
> +++ b/gas/config/tc-ia64.h
> @@ -110,7 +110,7 @@ extern void ia64_cons_fix_new (fragS *, int, int, expressionS *,
>  			       bfd_reloc_code_real_type);
>  extern void ia64_validate_fix (struct fix *);
>  extern char * ia64_canonicalize_symbol_name (char *);
> -extern bfd_vma ia64_elf_section_letter (int, char **);
> +extern bfd_vma ia64_elf_section_letter (int, const char **);
>  extern flagword ia64_elf_section_flags (flagword, bfd_vma, int);
>  extern int ia64_elf_section_type (const char *, size_t);
>  extern long ia64_pcrel_from_section (struct fix *, segT);
> diff --git a/gas/config/tc-ip2k.c b/gas/config/tc-ip2k.c
> index 7e4d351..642dfea 100644
> --- a/gas/config/tc-ip2k.c
> +++ b/gas/config/tc-ip2k.c
> @@ -311,7 +311,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>    number_to_chars_bigendian (buf, val, n);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int *  sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-iq2000.c b/gas/config/tc-iq2000.c
> index c5ccfca..f1f7945 100644
> --- a/gas/config/tc-iq2000.c
> +++ b/gas/config/tc-iq2000.c
> @@ -724,7 +724,7 @@ md_operand (expressionS * exp)
>      gas_cgen_md_operand (exp);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-lm32.c b/gas/config/tc-lm32.c
> index a20b9a0..5f7d703 100644
> --- a/gas/config/tc-lm32.c
> +++ b/gas/config/tc-lm32.c
> @@ -214,7 +214,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>     of LITTLENUMS emitted is stored in *SIZEP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int i;
> diff --git a/gas/config/tc-m32c.c b/gas/config/tc-m32c.c
> index 5496f7e..0219d9b 100644
> --- a/gas/config/tc-m32c.c
> +++ b/gas/config/tc-m32c.c
> @@ -1155,7 +1155,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>  /* Equal to MAX_PRECISION in atof-ieee.c.  */
>  #define MAX_LITTLENUMS 6
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c
> index 89205f8..126ab9c 100644
> --- a/gas/config/tc-m32r.c
> +++ b/gas/config/tc-m32r.c
> @@ -2106,7 +2106,7 @@ md_number_to_chars (char *buf, valueT val, int n)
>  /* Equal to MAX_PRECISION in atof-ieee.c.  */
>  #define MAX_LITTLENUMS 6
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
> index 71fdb26..c61bded 100644
> --- a/gas/config/tc-m68hc11.c
> +++ b/gas/config/tc-m68hc11.c
> @@ -574,7 +574,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c
> index b89f0a9..f148845 100644
> --- a/gas/config/tc-m68k.c
> +++ b/gas/config/tc-m68k.c
> @@ -4879,7 +4879,7 @@ m68k_mri_mode_change (int on)
>      }
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-mcore.c b/gas/config/tc-mcore.c
> index dc5c95d..67d1ea8 100644
> --- a/gas/config/tc-mcore.c
> +++ b/gas/config/tc-mcore.c
> @@ -1616,7 +1616,7 @@ md_mcore_end (void)
>  
>  /* Various routines to kill one day.  */
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c
> index 6b659d4..6e62ad5 100644
> --- a/gas/config/tc-mep.c
> +++ b/gas/config/tc-mep.c
> @@ -2039,7 +2039,7 @@ md_number_to_chars (char *buf, valueT val, int n)
>      number_to_chars_littleendian (buf, val, n);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> @@ -2080,7 +2080,7 @@ mep_fix_adjustable (fixS *fixP)
>  }
>  
>  bfd_vma
> -mep_elf_section_letter (int letter, char **ptrmsg)
> +mep_elf_section_letter (int letter, const char **ptrmsg)
>  {
>    if (letter == 'v')
>      return SHF_MEP_VLIW;
> diff --git a/gas/config/tc-mep.h b/gas/config/tc-mep.h
> index c771c21..b711889 100644
> --- a/gas/config/tc-mep.h
> +++ b/gas/config/tc-mep.h
> @@ -106,7 +106,7 @@ extern int mep_unrecognized_line (int);
>  extern void mep_cleanup (void);
>  
>  #define md_elf_section_letter		mep_elf_section_letter
> -extern bfd_vma mep_elf_section_letter (int, char **);
> +extern bfd_vma mep_elf_section_letter (int, const char **);
>  #define md_elf_section_flags		mep_elf_section_flags
>  extern flagword mep_elf_section_flags  (flagword, bfd_vma, int);
>  
> diff --git a/gas/config/tc-metag.c b/gas/config/tc-metag.c
> index d287387..cc9140b 100644
> --- a/gas/config/tc-metag.c
> +++ b/gas/config/tc-metag.c
> @@ -6707,7 +6707,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>  /* Equal to MAX_PRECISION in atof-ieee.c */
>  #define MAX_LITTLENUMS 6
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    int              i;
> diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c
> index a92e0eb..e720ee8 100644
> --- a/gas/config/tc-microblaze.c
> +++ b/gas/config/tc-microblaze.c
> @@ -1758,7 +1758,7 @@ md_undefined_symbol (char * name ATTRIBUTE_UNUSED)
>  /* Turn a string in input_line_pointer into a floating point constant of type
>     type, and store the appropriate bytes in *litP.  The number of LITTLENUMS
>     emitted is stored in *sizeP.  An error message is returned, or NULL on OK.*/
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    int prec;
> diff --git a/gas/config/tc-microblaze.h b/gas/config/tc-microblaze.h
> index 0fde831..f298a2a 100644
> --- a/gas/config/tc-microblaze.h
> +++ b/gas/config/tc-microblaze.h
> @@ -100,7 +100,6 @@ extern const struct relax_type md_relax_table[];
>  extern void      md_begin            (void);
>  extern void      md_assemble         (char *);
>  extern symbolS * md_undefined_symbol (char *);
> -extern char *    md_atof             (int, char *, int *);
>  extern void      md_show_usage       (FILE *);
>  extern void      md_convert_frag               (bfd *, segT, fragS *);
>  extern void      md_operand                    (expressionS *);
> diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
> index f2b81f2..ca1098b 100644
> --- a/gas/config/tc-mips.c
> +++ b/gas/config/tc-mips.c
> @@ -3042,7 +3042,8 @@ mips_parse_base_start (char *s)
>  static char *
>  mips_parse_argument_token (char *s, char float_format)
>  {
> -  char *end, *save_in, *err;
> +  char *end, *save_in;
> +  const char *err;
>    unsigned int regno1, regno2, channels;
>    struct mips_operand_token token;
>  
> @@ -13996,7 +13997,7 @@ my_getExpression (expressionS *ep, char *str)
>    input_line_pointer = save_in;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-mmix.c b/gas/config/tc-mmix.c
> index 00543f4..2400a0b 100644
> --- a/gas/config/tc-mmix.c
> +++ b/gas/config/tc-mmix.c
> @@ -2272,7 +2272,7 @@ md_estimate_size_before_relax (fragS *fragP, segT segment)
>     emitted is stored in *sizeP .  An error message is returned, or NULL on
>     OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    if (type == 'r')
> diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c
> index ea2fa8f..2cdfa68 100644
> --- a/gas/config/tc-mn10200.c
> +++ b/gas/config/tc-mn10200.c
> @@ -314,7 +314,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litp, int *sizep)
>  {
>    return ieee_md_atof (type, litp, sizep, FALSE);
> diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c
> index 4f76677..9a5d3be 100644
> --- a/gas/config/tc-mn10300.c
> +++ b/gas/config/tc-mn10300.c
> @@ -455,7 +455,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litp, int *sizep)
>  {
>    return ieee_md_atof (type, litp, sizep, FALSE);
> diff --git a/gas/config/tc-moxie.c b/gas/config/tc-moxie.c
> index aa48c99..24c9aec 100644
> --- a/gas/config/tc-moxie.c
> +++ b/gas/config/tc-moxie.c
> @@ -556,7 +556,7 @@ md_assemble (char *str)
>     of LITTLENUMS emitted is stored in *SIZEP .  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int prec;
> diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c
> index 98910aa..3621fdb 100644
> --- a/gas/config/tc-msp430.c
> +++ b/gas/config/tc-msp430.c
> @@ -1630,7 +1630,7 @@ extract_cmd (char * from, char * to, int limit)
>    return from;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-mt.c b/gas/config/tc-mt.c
> index c9aa18c..e0bca88 100644
> --- a/gas/config/tc-mt.c
> +++ b/gas/config/tc-mt.c
> @@ -433,7 +433,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>    number_to_chars_bigendian (buf, val, n);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c
> index 0d7d346..897561d 100644
> --- a/gas/config/tc-nds32.c
> +++ b/gas/config/tc-nds32.c
> @@ -6064,7 +6064,7 @@ md_number_to_chars (char *buf, valueT val, int n)
>  /* This function is called to convert an ASCII string into a floating point
>     value in format used by the CPU.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int i;
> diff --git a/gas/config/tc-nios2.c b/gas/config/tc-nios2.c
> index 399fcf0..bf37ff7 100644
> --- a/gas/config/tc-nios2.c
> +++ b/gas/config/tc-nios2.c
> @@ -264,7 +264,7 @@ md_number_to_chars (char *buf, valueT val, int n)
>     of type TYPE, and store the appropriate bytes in *LITP.  The number
>     of LITTLENUMS emitted is stored in *SIZEP.  An error message is
>     returned, or NULL on OK.  */
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int prec;
> @@ -3980,7 +3980,7 @@ nios2_cons_align (int size)
>  /* Map 's' to SHF_NIOS2_GPREL.  */
>  /* This is from the Alpha code tc-alpha.c.  */
>  int
> -nios2_elf_section_letter (int letter, char **ptr_msg)
> +nios2_elf_section_letter (int letter, const char **ptr_msg)
>  {
>    if (letter == 's')
>      return SHF_NIOS2_GPREL;
> diff --git a/gas/config/tc-nios2.h b/gas/config/tc-nios2.h
> index 05cc596..3612c33 100644
> --- a/gas/config/tc-nios2.h
> +++ b/gas/config/tc-nios2.h
> @@ -92,7 +92,7 @@ extern long nios2_relax_frag (segT segment, fragS * fragP, long stretch);
>  
>  /* Processor-specific section directives.  */
>  #define md_elf_section_letter		nios2_elf_section_letter
> -extern int nios2_elf_section_letter (int, char **);
> +extern int nios2_elf_section_letter (int, const char **);
>  #define md_elf_section_flags		nios2_elf_section_flags
>  extern flagword nios2_elf_section_flags (flagword, int, int);
>  #endif
> diff --git a/gas/config/tc-ns32k.c b/gas/config/tc-ns32k.c
> index 1f5dbd9..0af829f 100644
> --- a/gas/config/tc-ns32k.c
> +++ b/gas/config/tc-ns32k.c
> @@ -1916,7 +1916,7 @@ md_begin (void)
>     LITTLENUMS emitted is stored in *SIZEP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-or1k.c b/gas/config/tc-or1k.c
> index 0abbd82..10fd2de 100644
> --- a/gas/config/tc-or1k.c
> +++ b/gas/config/tc-or1k.c
> @@ -278,7 +278,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>  /* Equal to MAX_PRECISION in atof-ieee.c.  */
>  #define MAX_LITTLENUMS 6
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int *  sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-pdp11.c b/gas/config/tc-pdp11.c
> index 68e710f..529df4f 100644
> --- a/gas/config/tc-pdp11.c
> +++ b/gas/config/tc-pdp11.c
> @@ -30,7 +30,7 @@ extern int flonum_gen2vax (int, FLONUM_TYPE * f, LITTLENUM_TYPE *);
>  /* A representation for PDP-11 machine code.  */
>  struct pdp11_code
>  {
> -  char *error;
> +  const char *error;
>    int code;
>    int additional;	/* Is there an additional word?  */
>    int word;		/* Additional word, if any.  */
> @@ -649,7 +649,7 @@ md_assemble (char *instruction_string)
>    struct pdp11_code insn, op1, op2;
>    int error;
>    int size;
> -  char *err = NULL;
> +  const char *err = NULL;
>    char *str;
>    char *p;
>    char c;
> @@ -1442,7 +1442,7 @@ pseudo_even (int c ATTRIBUTE_UNUSED)
>    record_alignment (now_seg, alignment);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return vax_md_atof (type, litP, sizeP);
> diff --git a/gas/config/tc-pj.c b/gas/config/tc-pj.c
> index 8f6266f..6a947fa 100644
> --- a/gas/config/tc-pj.c
> +++ b/gas/config/tc-pj.c
> @@ -313,7 +313,7 @@ md_assemble (char *str)
>      as_bad (_("Something forgot to clean up\n"));
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
> index ecd251b..63e2e61 100644
> --- a/gas/config/tc-ppc.c
> +++ b/gas/config/tc-ppc.c
> @@ -6079,7 +6079,7 @@ ppc_frob_section (asection *sec)
>  
>  #endif /* OBJ_XCOFF */
>  
> -char *
> +const char *
>  md_atof (int type, char *litp, int *sizep)
>  {
>    return ieee_md_atof (type, litp, sizep, target_big_endian);
> diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c
> index d9f723a..0ecdb15 100644
> --- a/gas/config/tc-rl78.c
> +++ b/gas/config/tc-rl78.c
> @@ -533,7 +533,7 @@ rl78_handle_align (fragS * frag)
>      }
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c
> index 22b5e9b..435d046 100644
> --- a/gas/config/tc-rx.c
> +++ b/gas/config/tc-rx.c
> @@ -1338,7 +1338,7 @@ rx_handle_align (fragS * frag)
>      }
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
> index 9bcc642..e2677f7 100644
> --- a/gas/config/tc-s390.c
> +++ b/gas/config/tc-s390.c
> @@ -2034,7 +2034,7 @@ s390_machinemode (int ignore ATTRIBUTE_UNUSED)
>  
>  #undef MAX_HISTORY
>  
> -char *
> +const char *
>  md_atof (int type, char *litp, int *sizep)
>  {
>    return ieee_md_atof (type, litp, sizep, TRUE);
> diff --git a/gas/config/tc-score.c b/gas/config/tc-score.c
> index 536016f..8ea1084 100644
> --- a/gas/config/tc-score.c
> +++ b/gas/config/tc-score.c
> @@ -61,7 +61,7 @@ static void s3_assemble (char *str);
>  static void s3_operand (expressionS *);
>  static void s3_begin (void);
>  static void s3_number_to_chars (char *buf, valueT val, int n);
> -static char *s3_atof (int type, char *litP, int *sizeP);
> +static const char *s3_atof (int type, char *litP, int *sizeP);
>  static void s3_frag_check (fragS * fragp ATTRIBUTE_UNUSED);
>  static void s3_validate_fix (fixS *fixP);
>  static int s3_force_relocation (struct fix *fixp);
> @@ -6657,7 +6657,7 @@ s3_md_chars_to_number (char *buf, int n)
>    return result;
>  }
>  
> -static char *
> +static const char *
>  s3_atof (int type, char *litP, int *sizeP)
>  {
>    int prec;
> @@ -7542,7 +7542,7 @@ md_number_to_chars (char *buf, valueT val, int n)
>     within the words.  For example, (double) 1.1 in big endian mode is
>     the byte sequence 3f f1 99 99 99 99 99 9a, and in little endian mode is
>     the byte sequence 99 99 f1 3f 9a 99 99 99.  */
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    if (score3)
> diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
> index ef07f10..3390a40 100644
> --- a/gas/config/tc-sh.c
> +++ b/gas/config/tc-sh.c
> @@ -3089,7 +3089,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>  
>  /* Various routines to kill one day.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
> index 9f30d3a..9526583 100644
> --- a/gas/config/tc-sparc.c
> +++ b/gas/config/tc-sparc.c
> @@ -200,7 +200,7 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP";
>  
>  struct sparc_it
>    {
> -    char *error;
> +    const char *error;
>      unsigned long opcode;
>      struct nlist *nlistp;
>      expressionS exp;
> @@ -3234,7 +3234,7 @@ output_insn (const struct sparc_opcode *insn, struct sparc_it *theinsn)
>  #endif
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-spu.c b/gas/config/tc-spu.c
> index b658bea..13e5e2d 100644
> --- a/gas/config/tc-spu.c
> +++ b/gas/config/tc-spu.c
> @@ -716,7 +716,7 @@ get_imm (const char *param, struct spu_insn *insn, int arg)
>    return param;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-tic30.c b/gas/config/tc-tic30.c
> index 4ccb820..71c6249 100644
> --- a/gas/config/tc-tic30.c
> +++ b/gas/config/tc-tic30.c
> @@ -1218,7 +1218,7 @@ md_pcrel_from (fixS *fixP)
>    return fixP->fx_where - fixP->fx_size + (INSN_SIZE * offset);
>  }
>  
> -char *
> +const char *
>  md_atof (int what_statement_type,
>  	 char *literalP,
>  	 int *sizeP)
> diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c
> index a833c52..c44201d 100644
> --- a/gas/config/tc-tic4x.c
> +++ b/gas/config/tc-tic4x.c
> @@ -2547,7 +2547,7 @@ tic4x_cleanup (void)
>     of chars emitted is stored in *sizeP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int prec;
> diff --git a/gas/config/tc-tic54x.c b/gas/config/tc-tic54x.c
> index 611b537..8c33df4 100644
> --- a/gas/config/tc-tic54x.c
> +++ b/gas/config/tc-tic54x.c
> @@ -5062,7 +5062,7 @@ tic54x_parse_name (char *name ATTRIBUTE_UNUSED,
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *literalP, int *sizeP)
>  {
>    /* Target data is little-endian, but floats are stored
> diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c
> index 84fd368..2135dbf 100644
> --- a/gas/config/tc-tic6x.c
> +++ b/gas/config/tc-tic6x.c
> @@ -4078,7 +4078,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
>  
>  /* Convert a floating-point number to target (IEEE) format.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-tilegx.c b/gas/config/tc-tilegx.c
> index 4cebfcf..bd42939 100644
> --- a/gas/config/tc-tilegx.c
> +++ b/gas/config/tc-tilegx.c
> @@ -1330,7 +1330,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>     LITTLENUMS emitted is stored in *SIZEP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int prec;
> diff --git a/gas/config/tc-tilepro.c b/gas/config/tc-tilepro.c
> index 1f5890d..a11b05f 100644
> --- a/gas/config/tc-tilepro.c
> +++ b/gas/config/tc-tilepro.c
> @@ -1205,7 +1205,7 @@ const pseudo_typeS md_pseudo_table[] =
>     LITTLENUMS emitted is stored in *SIZEP.  An error message is
>     returned, or NULL on OK.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int prec;
> diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c
> index bd762fb..5b425a9 100644
> --- a/gas/config/tc-v850.c
> +++ b/gas/config/tc-v850.c
> @@ -1372,7 +1372,7 @@ skip_white_space (void)
>     and so on upwards.  System registers are considered to be very
>     high numbers.  */
>  
> -static char *
> +static const char *
>  parse_register_list (unsigned long *insn,
>  		     const struct v850_operand *operand)
>  {
> @@ -1670,7 +1670,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litp, int *sizep)
>  {
>    return ieee_md_atof (type, litp, sizep, FALSE);
> diff --git a/gas/config/tc-vax.c b/gas/config/tc-vax.c
> index 89fc6fc..538a994 100644
> --- a/gas/config/tc-vax.c
> +++ b/gas/config/tc-vax.c
> @@ -3403,7 +3403,7 @@ vax_cons_fix_new (fragS *frag, int where, unsigned int nbytes, expressionS *exp,
>    fix_new_exp (frag, where, (int) nbytes, exp, 0, r);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return vax_md_atof (type, litP, sizeP);
> diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c
> index 4ab5fca..c618524 100644
> --- a/gas/config/tc-visium.c
> +++ b/gas/config/tc-visium.c
> @@ -826,7 +826,7 @@ md_begin (void)
>  /* Equal to MAX_PRECISION in atof-ieee.c.  */
>  #define MAX_LITTLENUMS 6
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    int i, prec;
> diff --git a/gas/config/tc-xc16x.c b/gas/config/tc-xc16x.c
> index 5e34e09..1fb964b 100644
> --- a/gas/config/tc-xc16x.c
> +++ b/gas/config/tc-xc16x.c
> @@ -225,7 +225,7 @@ md_parse_option (int c ATTRIBUTE_UNUSED,
>    return 0;
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-xgate.c b/gas/config/tc-xgate.c
> index 5b94158..1d68edc 100644
> --- a/gas/config/tc-xgate.c
> +++ b/gas/config/tc-xgate.c
> @@ -193,7 +193,7 @@ struct option md_longopts[] =
>  
>  size_t md_longopts_size = sizeof(md_longopts);
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/config/tc-xstormy16.c b/gas/config/tc-xstormy16.c
> index 7ad3ea8..887160d 100644
> --- a/gas/config/tc-xstormy16.c
> +++ b/gas/config/tc-xstormy16.c
> @@ -596,7 +596,7 @@ md_number_to_chars (char * buf, valueT val, int n)
>    number_to_chars_littleendian (buf, val, n);
>  }
>  
> -char *
> +const char *
>  md_atof (int type, char * litP, int * sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, FALSE);
> diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
> index fe16659..c006418 100644
> --- a/gas/config/tc-xtensa.c
> +++ b/gas/config/tc-xtensa.c
> @@ -6073,7 +6073,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
>  }
>  
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, target_big_endian);
> diff --git a/gas/config/tc-z80.c b/gas/config/tc-z80.c
> index 2e1dca9..7b1e72a 100644
> --- a/gas/config/tc-z80.c
> +++ b/gas/config/tc-z80.c
> @@ -384,7 +384,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>    return NULL;
>  }
>  
> -char *
> +const char *
>  md_atof (int type ATTRIBUTE_UNUSED, char *litP ATTRIBUTE_UNUSED,
>  	 int *sizeP ATTRIBUTE_UNUSED)
>  {
> diff --git a/gas/config/tc-z8k.c b/gas/config/tc-z8k.c
> index 64fca74..6a0d596 100644
> --- a/gas/config/tc-z8k.c
> +++ b/gas/config/tc-z8k.c
> @@ -1285,7 +1285,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
>  
>  /* Various routines to kill one day.  */
>  
> -char *
> +const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
>    return ieee_md_atof (type, litP, sizeP, TRUE);
> diff --git a/gas/messages.c b/gas/messages.c
> index dc016bf..ad40ca8 100644
> --- a/gas/messages.c
> +++ b/gas/messages.c
> @@ -342,13 +342,13 @@ sprint_value (char *buf, valueT val)
>  #define HEX_MIN_THRESHOLD	-(HEX_MAX_THRESHOLD)
>  
>  static void
> -as_internal_value_out_of_range (const char *  prefix,
> -				offsetT       val,
> -				offsetT       min,
> -				offsetT       max,
> -				const char *        file,
> -				unsigned      line,
> -				int           bad)
> +as_internal_value_out_of_range (const char *prefix,
> +				offsetT val,
> +				offsetT min,
> +				offsetT max,
> +				const char *file,
> +				unsigned line,
> +				int bad)
>  {
>    const char * err;
>  
> @@ -414,22 +414,22 @@ as_internal_value_out_of_range (const char *  prefix,
>  }
>  
>  void
> -as_warn_value_out_of_range (char *   prefix,
> -			   offsetT  value,
> -			   offsetT  min,
> -			   offsetT  max,
> -			   const char *   file,
> +as_warn_value_out_of_range (const char *prefix,
> +			   offsetT value,
> +			   offsetT min,
> +			   offsetT max,
> +			   const char *file,
>  			   unsigned line)
>  {
>    as_internal_value_out_of_range (prefix, value, min, max, file, line, 0);
>  }
>  
>  void
> -as_bad_value_out_of_range (char *   prefix,
> -			   offsetT  value,
> -			   offsetT  min,
> -			   offsetT  max,
> -			   const char *   file,
> +as_bad_value_out_of_range (const char *prefix,
> +			   offsetT value,
> +			   offsetT min,
> +			   offsetT max,
> +			   const char *file,
>  			   unsigned line)
>  {
>    as_internal_value_out_of_range (prefix, value, min, max, file, line, 1);
> diff --git a/gas/read.c b/gas/read.c
> index 45023ca..35d44c1 100644
> --- a/gas/read.c
> +++ b/gas/read.c
> @@ -2136,7 +2136,7 @@ s_errwarn (int err)
>       self-contained message, one that can be passed like the
>       demand_copy_C_string return value, and with no assumption on the
>       location of the name of the directive within the message.  */
> -  char *msg
> +  const char *msg
>      = (err ? _(".error directive invoked in source file")
>         : _(".warning directive invoked in source file"));
>  
> @@ -3541,7 +3541,7 @@ s_float_space (int float_type)
>      }
>    else
>      {
> -      char *err;
> +      const char *err;
>  
>        err = md_atof (float_type, temp, &flen);
>        know (flen <= MAXIMUM_NUMBER_OF_CHARS_FOR_FLOAT);
> @@ -4920,7 +4920,7 @@ float_cons (/* Clobbers input_line-pointer, checks end-of-line.  */
>  {
>    char *p;
>    int length;			/* Number of chars in an object.  */
> -  char *err;		/* Error from scanning floating literal.  */
> +  const char *err;		/* Error from scanning floating literal.  */
>    char temp[MAXIMUM_NUMBER_OF_CHARS_FOR_FLOAT];
>  
>    if (is_it_end_of_statement ())
> diff --git a/gas/tc.h b/gas/tc.h
> index 3683466..51ff499 100644
> --- a/gas/tc.h
> +++ b/gas/tc.h
> @@ -24,7 +24,7 @@
>  
>  extern const pseudo_typeS md_pseudo_table[];
>  
> -char * md_atof (int, char *, int *);
> +const char * md_atof (int, char *, int *);
>  int    md_parse_option (int, const char *);
>  void   md_show_usage (FILE *);
>  void   md_assemble (char *);
> 
> -- 
> Alan Modra
> Australia Development Lab, IBM



More information about the Binutils mailing list