This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch installed: constify rtunion_def.rtstr and related ...


I installed this patch which const-ifies rtunion_def.rtstr.

There was a lot of const-ipation fallout (and benefits), but I avoided
ever casting away const-ness so its just rote work.  Bootstrapped on
sparc-sun-solaris2.7, alphaev5-dec-osf4.0b and on i686-pc-linux-gnu
(with builtin strlen disabled).

I think I got everything, but there may be a couple of nits I
overlooked, especially on specific platforms.

		--Kaveh


2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rtl.h (rtunion_def): Constify member `rtstr'.
	(emit_line_note_after, emit_line_note, emit_line_note_force,
	emit_note, decode_asm_operands): Constify.
	
	* cse.c (canon_hash): Likewise.

	* dbxout.c (dbxout_block): Likewise.

	* diagnostic.c (file_and_line_for_asm, v_error_for_asm,
	v_warning_for_asm): Likewise.

	* dwarfout.c (function_start_label): Likewise.

	* emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
	emit_line_note_force): Likewise.

	* final.c (last_filename, asm_insn_count, final_scan_insn,
	output_source_line): Likewise.

	* function.h (struct emit_status): Likewise.

	* gcse.c (hash_expr_1): Likewise.

	* genattr.c (gen_attr, main): Likewise.

	* genattrtab.c (struct function_unit, current_alternative_string,
	write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
	attr_numeral, check_attr_test, check_attr_value,
	convert_set_attr_alternative, convert_set_attr,
	compute_alternative_mask, simplify_by_exploding, gen_attr,
	gen_unit): Likewise.

	* genflags.c (gen_insn): Likewise.

	* gengenrtl.c (type_from_format): Likewise.

	* genopinit.c (gen_insn): Likewise.

	* genoutput.c (n_occurrences, process_template, process_template):
	Likewise.

	* ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
	ggc_set_mark, ggc_get_size): Likewise.

	* objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.

	* optabs.c (init_one_libfunc): Likewise.

	* output.h (assemble_start_function): Likewise.

	* recog.c (decode_asm_operands): Likewise.

	* toplev.c (rest_of_compilation): Likewise.

	* tree.h (emit_line_note_after, emit_line_note,
	emit_line_note_force): Likewise.

	* varasm.c (asm_output_bss, asm_output_aligned_bss,
	asm_emit_uninitialised, assemble_start_function,
	assemble_variable, const_hash, compare_constant_1,
	find_pool_constant, mark_constant_pool, assemble_alias): Likewise.

	* xcoffout.h (DBX_FINISH_SYMBOL): Likewise.

	* alpha/alpha.md (call_vms, call_value_vms): Likewise.

	* arm/aof.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/aout.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
	arm_dllimport_name_p): Likewise.

	* arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
	Likewise.

	* arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.

	* arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
	arm_mark_dllexport, arm_mark_dllimport,
	arm_pe_encode_section_info): Likewise.

	* arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
	ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/thumb.c (thumb_function_prologue): Likewise.

	* arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.

	* avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.

	* fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/i386-protos.h (asm_output_function_prefix): Likewise.

	* i386/i386.c (asm_output_function_prefix): Likewise.

	* i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
	ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
	ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.

	* m32r/m32r.c (m32r_encode_section_info): Likewise.

	* mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mcore/mcore.c (mcore_encode_section_info): Likewise.

	* mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/mips.h (ASM_OUTPUT_IDENT): Likewise.

	* mips/mips.md (movdi, movsi): Likewise.

	* mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII): Likewise.

	* rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
	output_mi_thunk, output_toc): Likewise.

	* rs6000/rs6000.md (movsi): Likewise.

	* rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.

	* tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.

	* v850/v850.c (print_operand, print_operand_address,
	v850_encode_data_area): Likewise.

ch:	
	* grant.c (globalize_decl): Constify a char*.

cp:
	* decl2.c (finish_objects): Likewise.

	* method.c (emit_thunk): Likewise.

diff -rup orig/egcs-CVS20000306/gcc/rtl.h egcs-CVS20000306/gcc/rtl.h
--- orig/egcs-CVS20000306/gcc/rtl.h	Sun Mar  5 20:36:20 2000
+++ egcs-CVS20000306/gcc/rtl.h	Mon Mar  6 18:05:26 2000
@@ -87,7 +87,7 @@ typedef union rtunion_def
 {
   HOST_WIDE_INT rtwint;
   int rtint;
-  char *rtstr;
+  const char *rtstr;
   struct rtx_def *rtx;
   struct rtvec_def *rtvec;
   enum machine_mode rttype;
@@ -1031,7 +1031,7 @@ extern rtx emit_jump_insn_after		PARAMS 
 extern rtx emit_barrier_after		PARAMS ((rtx));
 extern rtx emit_label_after		PARAMS ((rtx, rtx));
 extern rtx emit_note_after		PARAMS ((int, rtx));
-extern rtx emit_line_note_after		PARAMS ((char *, int, rtx));
+extern rtx emit_line_note_after		PARAMS ((const char *, int, rtx));
 extern rtx emit_insn			PARAMS ((rtx));
 extern rtx emit_insns			PARAMS ((rtx));
 extern rtx emit_insns_before		PARAMS ((rtx, rtx));
@@ -1040,9 +1040,9 @@ extern rtx emit_jump_insn		PARAMS ((rtx)
 extern rtx emit_call_insn		PARAMS ((rtx));
 extern rtx emit_label			PARAMS ((rtx));
 extern rtx emit_barrier			PARAMS ((void));
-extern rtx emit_line_note		PARAMS ((char *, int));
-extern rtx emit_note			PARAMS ((char *, int));
-extern rtx emit_line_note_force		PARAMS ((char *, int));
+extern rtx emit_line_note		PARAMS ((const char *, int));
+extern rtx emit_note			PARAMS ((const char *, int));
+extern rtx emit_line_note_force		PARAMS ((const char *, int));
 extern rtx make_insn_raw		PARAMS ((rtx));
 extern rtx previous_insn		PARAMS ((rtx));
 extern rtx next_insn			PARAMS ((rtx));
@@ -1163,7 +1163,7 @@ extern void free_reg_info		PARAMS ((void
 
 /* recog.c */
 extern int asm_noperands		PARAMS ((rtx));
-extern char *decode_asm_operands	PARAMS ((rtx, rtx *, rtx **,
+extern const char *decode_asm_operands	PARAMS ((rtx, rtx *, rtx **,
 					       const char **,
 					       enum machine_mode *));
 
diff -rup orig/egcs-CVS20000306/gcc/cse.c egcs-CVS20000306/gcc/cse.c
--- orig/egcs-CVS20000306/gcc/cse.c	Sun Feb 27 11:49:12 2000
+++ egcs-CVS20000306/gcc/cse.c	Mon Mar  6 19:13:33 2000
@@ -2252,7 +2252,9 @@ canon_hash (x, mode)
 	  hash += canon_hash (XVECEXP (x, i, j), 0);
       else if (fmt[i] == 's')
 	{
-	  register unsigned char *p = (unsigned char *) XSTR (x, i);
+	  register const unsigned char *p =
+	    (const unsigned char *) XSTR (x, i);
+
 	  if (p)
 	    while (*p)
 	      hash += *p++;
diff -rup orig/egcs-CVS20000306/gcc/dbxout.c egcs-CVS20000306/gcc/dbxout.c
--- orig/egcs-CVS20000306/gcc/dbxout.c	Tue Feb 29 22:16:54 2000
+++ egcs-CVS20000306/gcc/dbxout.c	Mon Mar  6 17:56:45 2000
@@ -2627,7 +2627,7 @@ dbxout_block (block, depth, args)
   int ignored;
 
 #if DBX_BLOCKS_FUNCTION_RELATIVE
-  char *begin_label; 
+  const char *begin_label; 
   if (current_function_func_begin_label != NULL_TREE)
     begin_label = IDENTIFIER_POINTER (current_function_func_begin_label);
   else
diff -rup orig/egcs-CVS20000306/gcc/diagnostic.c egcs-CVS20000306/gcc/diagnostic.c
--- orig/egcs-CVS20000306/gcc/diagnostic.c	Wed Feb 23 09:36:08 2000
+++ egcs-CVS20000306/gcc/diagnostic.c	Mon Mar  6 17:27:18 2000
@@ -78,7 +78,7 @@ static void notice PARAMS ((const char *
 static void v_message_with_file_and_line PARAMS ((const char *, int, int,
 						  const char *, va_list));
 static void v_message_with_decl PARAMS ((tree, int, const char *, va_list));
-static void file_and_line_for_asm PARAMS ((rtx, char **, int *));
+static void file_and_line_for_asm PARAMS ((rtx, const char **, int *));
 static void v_error_with_file_and_line PARAMS ((const char *, int,
 						const char *, va_list));
 static void v_error_with_decl PARAMS ((tree, const char *, va_list));
@@ -574,7 +574,7 @@ v_message_with_decl (decl, warn, msgid, 
 static void
 file_and_line_for_asm (insn, pfile, pline)
      rtx insn;
-     char **pfile;
+     const char **pfile;
      int *pline;
 {
   rtx body = PATTERN (insn);
@@ -649,7 +649,7 @@ v_error_for_asm (insn, msgid, ap)
      const char *msgid;
      va_list ap;
 {
-  char *file;
+  const char *file;
   int line;
 
   count_error (0);
@@ -737,7 +737,7 @@ v_warning_for_asm (insn, msgid, ap)
 {
   if (count_error (1))
     {
-      char *file;
+      const char *file;
       int line;
 
       file_and_line_for_asm (insn, &file, &line);
diff -rup orig/egcs-CVS20000306/gcc/dwarfout.c egcs-CVS20000306/gcc/dwarfout.c
--- orig/egcs-CVS20000306/gcc/dwarfout.c	Sat Mar  4 09:08:02 2000
+++ egcs-CVS20000306/gcc/dwarfout.c	Mon Mar  6 17:58:08 2000
@@ -383,7 +383,7 @@ static char *type_tag			PARAMS ((tree));
 static inline void dienum_push		PARAMS ((void));
 static inline void dienum_pop		PARAMS ((void));
 static inline tree member_declared_type PARAMS ((tree));
-static char *function_start_label	PARAMS ((tree));
+static const char *function_start_label	PARAMS ((tree));
 static void output_array_type_die	PARAMS ((void *));
 static void output_set_type_die		PARAMS ((void *));
 #if 0
@@ -3205,12 +3205,12 @@ member_declared_type (member)
    This may be different from the DECL_NAME name used
    in the source file.  */
 
-static char *
+static const char *
 function_start_label (decl)
     register tree decl;
 {
   rtx x;
-  char *fnname;
+  const char *fnname;
 
   x = DECL_RTL (decl);
   if (GET_CODE (x) != MEM)
diff -rup orig/egcs-CVS20000306/gcc/emit-rtl.c egcs-CVS20000306/gcc/emit-rtl.c
--- orig/egcs-CVS20000306/gcc/emit-rtl.c	Sun Mar  5 20:36:09 2000
+++ egcs-CVS20000306/gcc/emit-rtl.c	Mon Mar  6 17:34:33 2000
@@ -3009,7 +3009,7 @@ emit_note_after (subtype, after)
 
 rtx
 emit_line_note_after (file, line, after)
-     char *file;
+     const char *file;
      int line;
      rtx after;
 {
@@ -3208,7 +3208,7 @@ emit_barrier ()
 
 rtx
 emit_line_note (file, line)
-     char *file;
+     const char *file;
      int line;
 {
   set_file_and_line_for_stmt (file, line);
@@ -3228,7 +3228,7 @@ emit_line_note (file, line)
 
 rtx
 emit_note (file, line)
-     char *file;
+     const char *file;
      int line;
 {
   register rtx note;
@@ -3260,7 +3260,7 @@ emit_note (file, line)
 
 rtx
 emit_line_note_force (file, line)
-     char *file;
+     const char *file;
      int line;
 {
   last_linenum = -1;
diff -rup orig/egcs-CVS20000306/gcc/final.c egcs-CVS20000306/gcc/final.c
--- orig/egcs-CVS20000306/gcc/final.c	Sat Mar  4 09:08:04 2000
+++ egcs-CVS20000306/gcc/final.c	Mon Mar  6 18:05:04 2000
@@ -147,7 +147,7 @@ static int high_block_linenum;
 static int high_function_linenum;
 
 /* Filename of last NOTE.  */
-static char *last_filename;
+static const char *last_filename;
 
 /* Number of basic blocks seen so far;
    used if profile_block_flag is set.  */
@@ -1537,7 +1537,7 @@ static int
 asm_insn_count (body)
      rtx body;
 {
-  char *template;
+  const char *template;
   int count = 1;
 
   if (GET_CODE (body) == ASM_INPUT)
@@ -2532,7 +2532,7 @@ final_scan_insn (insn, file, optimize, p
 	  {
 	    unsigned int noperands = asm_noperands (body);
 	    rtx *ops = (rtx *) alloca (noperands * sizeof (rtx));
-	    char *string;
+	    const char *string;
 
 	    /* There's no telling what that did to the condition codes.  */
 	    CC_STATUS_INIT;
@@ -2972,7 +2972,7 @@ output_source_line (file, insn)
      FILE *file ATTRIBUTE_UNUSED;
      rtx insn;
 {
-  register char *filename = NOTE_SOURCE_FILE (insn);
+  register const char *filename = NOTE_SOURCE_FILE (insn);
 
   /* Remember filename for basic block profiling.
      Filenames are allocated on the permanent obstack
diff -rup orig/egcs-CVS20000306/gcc/function.h egcs-CVS20000306/gcc/function.h
--- orig/egcs-CVS20000306/gcc/function.h	Sun Mar  5 20:36:15 2000
+++ egcs-CVS20000306/gcc/function.h	Mon Mar  6 17:41:44 2000
@@ -95,7 +95,7 @@ struct emit_status
   /* Line number and source file of the last line-number NOTE emitted.
      This is used to avoid generating duplicates.  */
   int x_last_linenum;
-  char *x_last_filename;
+  const char *x_last_filename;
 
   /* A vector indexed by pseudo reg number.  The allocated length
      of this vector is regno_pointer_flag_length.  Since this
diff -rup orig/egcs-CVS20000306/gcc/gcse.c egcs-CVS20000306/gcc/gcse.c
--- orig/egcs-CVS20000306/gcc/gcse.c	Fri Mar  3 11:07:12 2000
+++ egcs-CVS20000306/gcc/gcse.c	Mon Mar  6 19:12:05 2000
@@ -1416,7 +1416,7 @@ hash_expr_1 (x, mode, do_not_record_p)
 	   final assembler.  This also avoids differences in the dump files
 	   between various stages.  */
 	unsigned int h = 0;
-	unsigned char *p = (unsigned char *) XSTR (x, 0);
+	const unsigned char *p = (const unsigned char *) XSTR (x, 0);
 
 	while (*p)
 	  h += (h << 7) + *p++; /* ??? revisit */
@@ -1488,7 +1488,8 @@ hash_expr_1 (x, mode, do_not_record_p)
 
       else if (fmt[i] == 's')
 	{
-	  register unsigned char *p = (unsigned char *) XSTR (x, i);
+	  register const unsigned char *p =
+	    (const unsigned char *) XSTR (x, i);
 
 	  if (p)
 	    while (*p)
diff -rup orig/egcs-CVS20000306/gcc/genattr.c egcs-CVS20000306/gcc/genattr.c
--- orig/egcs-CVS20000306/gcc/genattr.c	Sat Feb 26 03:34:36 2000
+++ egcs-CVS20000306/gcc/genattr.c	Mon Mar  6 17:24:44 2000
@@ -91,7 +91,7 @@ static void
 gen_attr (attr)
      rtx attr;
 {
-  char *p;
+  const char *p;
   int is_const = GET_CODE (XEXP (attr, 2)) == CONST;  
 
   printf ("#define HAVE_ATTR_%s\n", XSTR (attr, 0));
@@ -306,7 +306,7 @@ from the machine description file `md'. 
 
       else if (GET_CODE (desc) == DEFINE_FUNCTION_UNIT)
 	{
-	  char *name = XSTR (desc, 0);
+	  const char *name = XSTR (desc, 0);
 	  int multiplicity = XINT (desc, 1);
 	  int simultaneity = XINT (desc, 2);
 	  int ready_cost = MAX (XINT (desc, 4), 1);
diff -rup orig/egcs-CVS20000306/gcc/genattrtab.c egcs-CVS20000306/gcc/genattrtab.c
--- orig/egcs-CVS20000306/gcc/genattrtab.c	Sat Feb 26 13:23:35 2000
+++ egcs-CVS20000306/gcc/genattrtab.c	Mon Mar  6 18:25:01 2000
@@ -216,7 +216,7 @@ struct function_unit_op
 
 struct function_unit
 {
-  char *name;			/* Function unit name.  */
+  const char *name;		/* Function unit name.  */
   struct function_unit *next;	/* Next function unit.  */
   int num;			/* Ordinal of this unit type.  */
   int multiplicity;		/* Number of units of this type.  */
@@ -316,7 +316,7 @@ static int *insn_alternatives;
    This is the hashed, unique string for the numeral
    whose value is chosen alternative.  */
 
-static char *current_alternative_string;
+static const char *current_alternative_string;
 
 /* Used to simplify expressions.  */
 
@@ -432,7 +432,7 @@ static void write_attr_set	PARAMS ((stru
 static void write_attr_case	PARAMS ((struct attr_desc *, struct attr_value *,
 				       int, const char *, const char *, int, rtx));
 static void write_unit_name	PARAMS ((const char *, int, const char *));
-static void write_attr_valueq	PARAMS ((struct attr_desc *, char *));
+static void write_attr_valueq	PARAMS ((struct attr_desc *, const char *));
 static void write_attr_value	PARAMS ((struct attr_desc *, rtx));
 static void write_upcase	PARAMS ((const char *));
 static void write_indent	PARAMS ((int));
@@ -443,16 +443,16 @@ static void write_complex_function PARAM
 static int write_expr_attr_cache PARAMS ((rtx, struct attr_desc *));
 static void write_toplevel_expr	PARAMS ((rtx));
 static void write_const_num_delay_slots PARAMS ((void));
-static int n_comma_elts		PARAMS ((char *));
-static char *next_comma_elt	PARAMS ((char **));
+static int n_comma_elts		PARAMS ((const char *));
+static char *next_comma_elt	PARAMS ((const char **));
 static struct attr_desc *find_attr PARAMS ((const char *, int));
 static void make_internal_attr	PARAMS ((const char *, rtx, int));
 static struct attr_value *find_most_used  PARAMS ((struct attr_desc *));
 static rtx find_single_value	PARAMS ((struct attr_desc *));
 static rtx make_numeric_value	PARAMS ((int));
 static void extend_range	PARAMS ((struct range *, int, int));
-static rtx attr_eq		PARAMS ((char *, char *));
-static char *attr_numeral	PARAMS ((int));
+static rtx attr_eq		PARAMS ((const char *, const char *));
+static const char *attr_numeral	PARAMS ((int));
 static int attr_equal_p		PARAMS ((rtx, rtx));
 static rtx attr_copy_rtx	PARAMS ((rtx));
 
@@ -765,13 +765,13 @@ attr_printf VPARAMS ((register int len, 
 
 static rtx
 attr_eq (name, value)
-     char *name, *value;
+     const char *name, *value;
 {
   return attr_rtx (EQ_ATTR, attr_string (name, strlen (name)),
 		   attr_string (value, strlen (value)));
 }
 
-static char *
+static const char *
 attr_numeral (n)
      int n;
 {
@@ -932,7 +932,7 @@ check_attr_test (exp, is_const)
 {
   struct attr_desc *attr;
   struct attr_value *av;
-  char *name_ptr, *p;
+  const char *name_ptr, *p;
   rtx orexp, newexp;
 
   switch (GET_CODE (exp))
@@ -1079,7 +1079,7 @@ check_attr_value (exp, attr)
      struct attr_desc *attr;
 {
   struct attr_value *av;
-  char *p;
+  const char *p;
   int i;
 
   switch (GET_CODE (exp))
@@ -1217,7 +1217,7 @@ convert_set_attr_alternative (exp, num_a
 
   for (i = 0; i < num_alt - 1; i++)
     {
-      char *p;
+      const char *p;
       p = attr_numeral (i);
 
       XVECEXP (condexp, 0, 2 * i) = attr_eq (alternative_name, p);
@@ -1245,7 +1245,7 @@ convert_set_attr (exp, num_alt, insn_ind
      int insn_index;
 {
   rtx newexp;
-  char *name_ptr;
+  const char *name_ptr;
   char *p;
   int n;
 
@@ -2761,7 +2761,7 @@ compute_alternative_mask (exp, code)
      rtx exp;
      enum rtx_code code;
 {
-  char *string;
+  const char *string;
   if (GET_CODE (exp) == code)
     return compute_alternative_mask (XEXP (exp, 0), code)
 	   | compute_alternative_mask (XEXP (exp, 1), code);
@@ -3608,7 +3608,7 @@ simplify_by_exploding (exp)
     {
       /* Pull the first attribute value from the list and record that
 	 attribute as another dimension in the attribute space.  */
-      char *name = XSTR (XEXP (list, 0), 0);
+      const char *name = XSTR (XEXP (list, 0), 0);
       rtx *prev;
 
       if ((space[ndim].attr = find_attr (name, 0)) == 0
@@ -4140,7 +4140,7 @@ gen_attr (exp)
 {
   struct attr_desc *attr;
   struct attr_value *av;
-  char *name_ptr;
+  const char *name_ptr;
   char *p;
 
   /* Make a new attribute structure.  Check for duplicate by looking at
@@ -4374,7 +4374,7 @@ gen_unit (def)
 {
   struct function_unit *unit;
   struct function_unit_op *op;
-  char *name = XSTR (def, 0);
+  const char *name = XSTR (def, 0);
   int multiplicity = XINT (def, 1);
   int simultaneity = XINT (def, 2);
   rtx condexp = XEXP (def, 3);
@@ -5253,7 +5253,7 @@ write_unit_name (prefix, num, suffix)
 static void
 write_attr_valueq (attr, s)
      struct attr_desc *attr;
-     char *s;
+     const char *s;
 {
   if (attr->is_numeric)
     {
@@ -5673,7 +5673,7 @@ write_complex_function (unit, name, conn
 
 static int
 n_comma_elts (s)
-     char *s;
+     const char *s;
 {
   int n;
 
@@ -5693,10 +5693,10 @@ n_comma_elts (s)
 
 static char *
 next_comma_elt (pstr)
-     char **pstr;
+     const char **pstr;
 {
   char *out_str;
-  char *p;
+  const char *p;
 
   if (**pstr == '\0')
     return NULL;
diff -rup orig/egcs-CVS20000306/gcc/genflags.c egcs-CVS20000306/gcc/genflags.c
--- orig/egcs-CVS20000306/gcc/genflags.c	Sat Feb 26 13:23:36 2000
+++ egcs-CVS20000306/gcc/genflags.c	Mon Mar  6 17:31:06 2000
@@ -134,8 +134,8 @@ static void
 gen_insn (insn)
      rtx insn;
 {
-  char *name = XSTR (insn, 0);
-  char *p;
+  const char *name = XSTR (insn, 0);
+  const char *p;
   struct obstack *obstack_ptr;
   int len;
 
diff -rup orig/egcs-CVS20000306/gcc/gengenrtl.c egcs-CVS20000306/gcc/gengenrtl.c
--- orig/egcs-CVS20000306/gcc/gengenrtl.c	Mon Mar  6 22:27:33 2000
+++ egcs-CVS20000306/gcc/gengenrtl.c	Mon Mar  6 19:02:11 2000
@@ -115,7 +115,7 @@ type_from_format (c)
       return "HOST_WIDE_INT ";
 
     case 's':
-      return "char *";
+      return "const char *";
 
     case 'e':  case 'u':
       return "rtx ";
diff -rup orig/egcs-CVS20000306/gcc/genopinit.c egcs-CVS20000306/gcc/genopinit.c
--- orig/egcs-CVS20000306/gcc/genopinit.c	Sat Feb 26 13:23:36 2000
+++ egcs-CVS20000306/gcc/genopinit.c	Mon Mar  6 18:06:56 2000
@@ -128,7 +128,7 @@ static void
 gen_insn (insn)
      rtx insn;
 {
-  char *name = XSTR (insn, 0);
+  const char *name = XSTR (insn, 0);
   int m1 = 0, m2 = 0, op = 0;
   size_t pindex;
   int i;
diff -rup orig/egcs-CVS20000306/gcc/genoutput.c egcs-CVS20000306/gcc/genoutput.c
--- orig/egcs-CVS20000306/gcc/genoutput.c	Sat Feb 26 13:23:37 2000
+++ egcs-CVS20000306/gcc/genoutput.c	Mon Mar  6 18:12:00 2000
@@ -103,7 +103,7 @@ struct obstack *rtl_obstack = &obstack;
 #define obstack_chunk_alloc xmalloc
 #define obstack_chunk_free free
 
-static int n_occurrences PARAMS ((int, char *));
+static int n_occurrences PARAMS ((int, const char *));
 static void strip_whitespace PARAMS ((char *));
 
 /* insns in the machine description are assigned sequential code numbers
@@ -185,13 +185,12 @@ static void scan_operands PARAMS ((struc
 static int compare_operands PARAMS ((struct operand_data *,
 				   struct operand_data *));
 static void place_operands PARAMS ((struct data *));
-static void process_template PARAMS ((struct data *, char *));
+static void process_template PARAMS ((struct data *, const char *));
 static void validate_insn_alternatives PARAMS ((struct data *));
 static void gen_insn PARAMS ((rtx));
 static void gen_peephole PARAMS ((rtx));
 static void gen_expand PARAMS ((rtx));
 static void gen_split PARAMS ((rtx));
-static int n_occurrences PARAMS ((int, char *));
 
 const char *
 get_insn_name (index)
@@ -637,9 +636,9 @@ place_operands (d)
 static void
 process_template (d, template)
     struct data *d;
-    char *template;
+    const char *template;
 {
-  register char *cp;
+  register const char *cp;
   register int i;
 
   /* Templates starting with * contain straight code to be run.  */
@@ -969,7 +968,7 @@ main (argc, argv)
 static int
 n_occurrences (c, s)
      int c;
-     char *s;
+     const char *s;
 {
   int n = 0;
   while (*s)
diff -rup orig/egcs-CVS20000306/gcc/ggc-page.c egcs-CVS20000306/gcc/ggc-page.c
--- orig/egcs-CVS20000306/gcc/ggc-page.c	Thu Feb 10 11:41:25 2000
+++ egcs-CVS20000306/gcc/ggc-page.c	Mon Mar  6 18:34:41 2000
@@ -730,7 +730,7 @@ ggc_alloc_obj (size, zero)
 
 int
 ggc_set_mark (p)
-     void *p;
+     const void *p;
 {
   page_entry *entry;
   unsigned bit, word;
@@ -746,7 +746,7 @@ ggc_set_mark (p)
 
   /* Calculate the index of the object on the page; this is its bit
      position in the in_use_p bitmap.  */
-  bit = (((char *) p) - entry->page) >> entry->order;
+  bit = (((const char *) p) - entry->page) >> entry->order;
   word = bit / HOST_BITS_PER_LONG;
   mask = (unsigned long) 1 << (bit % HOST_BITS_PER_LONG);
   
@@ -770,7 +770,7 @@ ggc_set_mark (p)
 
 void
 ggc_mark_if_gcable (p)
-     void *p;
+     const void *p;
 {
   if (p && ggc_allocated_p (p))
     ggc_set_mark (p);
@@ -780,7 +780,7 @@ ggc_mark_if_gcable (p)
 
 size_t
 ggc_get_size (p)
-     void *p;
+     const void *p;
 {
   page_entry *pe = lookup_page_table_entry (p);
   return 1 << pe->order;
diff -rup orig/egcs-CVS20000306/gcc/ggc-simple.c egcs-CVS20000306/gcc/ggc-simple.c
--- orig/egcs-CVS20000306/gcc/ggc-simple.c	Mon Jan 17 12:02:58 2000
+++ egcs-CVS20000306/gcc/ggc-simple.c	Mon Mar  6 18:34:59 2000
@@ -217,11 +217,11 @@ ggc_alloc_obj (size, zero)
 
 int
 ggc_set_mark (p)
-     void *p;
+     const void *p;
 {
   struct ggc_mem *x;
 
-  x = (struct ggc_mem *) ((char *)p - offsetof (struct ggc_mem, u));
+  x = (struct ggc_mem *) ((const char *)p - offsetof (struct ggc_mem, u));
 #ifdef GGC_ALWAYS_VERIFY
   if (! tree_lookup (x))
     abort ();
@@ -241,14 +241,14 @@ ggc_set_mark (p)
 
 void
 ggc_mark_if_gcable (p)
-     void *p;
+     const void *p;
 {
   struct ggc_mem *x;
 
   if (p == NULL)
     return;
 
-  x = (struct ggc_mem *) ((char *)p - offsetof (struct ggc_mem, u));
+  x = (struct ggc_mem *) ((const char *)p - offsetof (struct ggc_mem, u));
   if (! tree_lookup (x))
     return;
 
@@ -264,10 +264,10 @@ ggc_mark_if_gcable (p)
 
 size_t
 ggc_get_size (p)
-     void *p;
+     const void *p;
 {
   struct ggc_mem *x 
-    = (struct ggc_mem *) ((char *)p - offsetof (struct ggc_mem, u));
+    = (struct ggc_mem *) ((const char *)p - offsetof (struct ggc_mem, u));
   return x->size;
 }
 
diff -rup orig/egcs-CVS20000306/gcc/ggc.h egcs-CVS20000306/gcc/ggc.h
--- orig/egcs-CVS20000306/gcc/ggc.h	Sat Feb  5 22:33:14 2000
+++ egcs-CVS20000306/gcc/ggc.h	Mon Mar  6 18:34:43 2000
@@ -94,20 +94,20 @@ extern void ggc_mark_tree_children PARAM
 
 #define ggc_mark_string(EXPR)			\
   do {						\
-    char *s__ = (EXPR);				\
+    const char *s__ = (EXPR);			\
     if (s__ != NULL)				\
       ggc_set_mark (s__);			\
   } while (0)
 
 #define ggc_mark(EXPR)				\
   do {						\
-    void *a__ = (EXPR);				\
+    const void *a__ = (EXPR);			\
     if (a__ != NULL)				\
       ggc_set_mark (a__);			\
   } while (0)
 
 /* Mark, but only if it was allocated in collectable memory.  */
-extern void ggc_mark_if_gcable PARAMS ((void *));
+extern void ggc_mark_if_gcable PARAMS ((const void *));
 
 /* A GC implementation must provide these functions.  */
 
@@ -151,7 +151,7 @@ void ggc_collect PARAMS ((void));
    returns zero if the object was not previously marked; non-zero if
    the object was already marked, or if, for any other reason,
    pointers in this data structure should not be traversed.  */
-int ggc_set_mark PARAMS ((void *));
+int ggc_set_mark PARAMS ((const void *));
 
 /* Callbacks to the languages.  */
 
@@ -200,7 +200,7 @@ typedef struct ggc_statistics 
 } ggc_statistics;
 
 /* Return the number of bytes allocated at the indicated address.  */
-size_t ggc_get_size PARAMS ((void *));
+size_t ggc_get_size PARAMS ((const void *));
 
 /* Used by the various collectors to gather and print statistics that
    do not depend on the collector in use.  */
diff -rup orig/egcs-CVS20000306/gcc/objc/objc-act.c egcs-CVS20000306/gcc/objc/objc-act.c
--- orig/egcs-CVS20000306/gcc/objc/objc-act.c	Mon Feb 28 22:39:57 2000
+++ egcs-CVS20000306/gcc/objc/objc-act.c	Mon Mar  6 19:59:06 2000
@@ -161,7 +161,7 @@ static void finish_objc				PARAMS ((void
 
 static void synth_module_prologue		PARAMS ((void));
 static tree build_constructor			PARAMS ((tree, tree));
-static char *build_module_descriptor		PARAMS ((void));
+static const char *build_module_descriptor      PARAMS ((void));
 static tree init_module_descriptor		PARAMS ((tree));
 static tree build_objc_method_call		PARAMS ((int, tree, tree,
 						       tree, tree, tree));
@@ -1681,7 +1681,7 @@ init_module_descriptor (type)
 
    struct objc_module { ... } _OBJC_MODULE = { ... };   */
 
-static char *
+static const char *
 build_module_descriptor ()
 {
   tree decl_specs, field_decl, field_decl_chain;
@@ -8189,7 +8189,7 @@ finish_objc ()
       || meth_var_names_chain || meth_var_types_chain || sel_ref_chain)
     {
       /* Arrange for Objc data structures to be initialized at run time.  */
-      char *init_name = build_module_descriptor ();
+      const char *init_name = build_module_descriptor ();
       if (init_name)
 	assemble_constructor (init_name);
     }
diff -rup orig/egcs-CVS20000306/gcc/optabs.c egcs-CVS20000306/gcc/optabs.c
--- orig/egcs-CVS20000306/gcc/optabs.c	Sat Feb 26 13:23:43 2000
+++ egcs-CVS20000306/gcc/optabs.c	Mon Mar  6 19:04:45 2000
@@ -4432,7 +4432,7 @@ init_one_libfunc (name)
   if (ggc_p)
     name = ggc_alloc_string (name, -1);
 
-  return gen_rtx_SYMBOL_REF (Pmode, (char *) name);
+  return gen_rtx_SYMBOL_REF (Pmode, name);
 }
 
 /* Mark ARG (which is really an OPTAB *) for GC.  */
diff -rup orig/egcs-CVS20000306/gcc/output.h egcs-CVS20000306/gcc/output.h
--- orig/egcs-CVS20000306/gcc/output.h	Sat Feb 26 13:23:43 2000
+++ egcs-CVS20000306/gcc/output.h	Mon Mar  6 18:59:34 2000
@@ -251,7 +251,7 @@ extern void assemble_asm		PARAMS ((tree)
    with defining the name of the function.  DECL describes the function.
    NAME is the function's name.  For the constant pool, we use the current
    constant pool data.  */
-extern void assemble_start_function	PARAMS ((tree, char *));
+extern void assemble_start_function	PARAMS ((tree, const char *));
 
 /* Output assembler code associated with defining the size of the
    function.  DECL describes the function.  NAME is the function's name.  */
diff -rup orig/egcs-CVS20000306/gcc/recog.c egcs-CVS20000306/gcc/recog.c
--- orig/egcs-CVS20000306/gcc/recog.c	Sat Feb 26 13:23:45 2000
+++ egcs-CVS20000306/gcc/recog.c	Mon Mar  6 18:03:58 2000
@@ -1405,7 +1405,7 @@ asm_noperands (body)
    If MODES, OPERAND_LOCS, CONSTRAINTS or OPERANDS is 0,
    we don't store that info.  */
 
-char *
+const char *
 decode_asm_operands (body, operands, operand_locs, constraints, modes)
      rtx body;
      rtx *operands;
@@ -1415,7 +1415,7 @@ decode_asm_operands (body, operands, ope
 {
   register int i;
   int noperands;
-  char *template = 0;
+  const char *template = 0;
 
   if (GET_CODE (body) == SET && GET_CODE (SET_SRC (body)) == ASM_OPERANDS)
     {
diff -rup orig/egcs-CVS20000306/gcc/toplev.c egcs-CVS20000306/gcc/toplev.c
--- orig/egcs-CVS20000306/gcc/toplev.c	Sat Mar  4 12:54:42 2000
+++ egcs-CVS20000306/gcc/toplev.c	Mon Mar  6 17:27:57 2000
@@ -3683,7 +3683,7 @@ rest_of_compilation (decl)
   TIMEVAR (final_time,
 	   {
 	     rtx x;
-	     char *fnname;
+	     const char *fnname;
 
 	     /* Get the function's name, as described by its RTL.
 		This may be different from the DECL_NAME name used
diff -rup orig/egcs-CVS20000306/gcc/tree.h egcs-CVS20000306/gcc/tree.h
--- orig/egcs-CVS20000306/gcc/tree.h	Mon Mar  6 13:00:52 2000
+++ egcs-CVS20000306/gcc/tree.h	Mon Mar  6 17:37:37 2000
@@ -2487,10 +2487,10 @@ extern void check_max_integer_computatio
 
 /* In emit-rtl.c */
 extern void start_sequence_for_rtl_expr		PARAMS ((tree));
-extern struct rtx_def *emit_line_note_after	PARAMS ((char *, int,
-							struct rtx_def *));
-extern struct rtx_def *emit_line_note		PARAMS ((char *, int));
-extern struct rtx_def *emit_line_note_force	PARAMS ((char *, int));
+extern struct rtx_def *emit_line_note_after	PARAMS ((const char *, int,
+							 struct rtx_def *));
+extern struct rtx_def *emit_line_note		PARAMS ((const char *, int));
+extern struct rtx_def *emit_line_note_force	PARAMS ((const char *, int));
 
 /* In calls.c */
 extern void special_function_p	        PARAMS ((tree, int *, int *,
diff -rup orig/egcs-CVS20000306/gcc/varasm.c egcs-CVS20000306/gcc/varasm.c
--- orig/egcs-CVS20000306/gcc/varasm.c	Sat Mar  4 09:08:06 2000
+++ egcs-CVS20000306/gcc/varasm.c	Mon Mar  6 18:59:19 2000
@@ -178,17 +178,18 @@ static void output_constructor		PARAMS (
 static void remove_from_pending_weak_list	PARAMS ((char *));
 #endif
 #ifdef ASM_OUTPUT_BSS
-static void asm_output_bss		PARAMS ((FILE *, tree, char *, int, int));
+static void asm_output_bss		PARAMS ((FILE *, tree, const char *, int, int));
 #endif
 #ifdef BSS_SECTION_ASM_OP
 #ifdef ASM_OUTPUT_ALIGNED_BSS
-static void asm_output_aligned_bss	PARAMS ((FILE *, tree, char *, int, int));
+static void asm_output_aligned_bss	PARAMS ((FILE *, tree, const char *,
+						 int, int));
 #endif
 #endif /* BSS_SECTION_ASM_OP */
 static void mark_pool_constant          PARAMS ((struct pool_constant *));
 static void mark_pool_sym_hash_table	PARAMS ((struct pool_sym **));
 static void mark_const_hash_entry	PARAMS ((void *));
-static void asm_emit_uninitialised	PARAMS ((tree, char *, int, int));
+static void asm_emit_uninitialised	PARAMS ((tree, const char*, int, int));
 
 static enum in_section { no_section, in_text, in_data, in_named
 #ifdef BSS_SECTION_ASM_OP
@@ -377,7 +378,7 @@ static void
 asm_output_bss (file, decl, name, size, rounded)
      FILE *file;
      tree decl ATTRIBUTE_UNUSED;
-     char *name;
+     const char *name;
      int size ATTRIBUTE_UNUSED, rounded;
 {
   ASM_GLOBALIZE_LABEL (file, name);
@@ -405,7 +406,7 @@ static void
 asm_output_aligned_bss (file, decl, name, size, align)
      FILE *file;
      tree decl;
-     char *name;
+     const char *name;
      int size, align;
 {
   ASM_GLOBALIZE_LABEL (file, name);
@@ -992,7 +993,7 @@ assemble_gc_entry (name)
 void
 assemble_start_function (decl, fnname)
      tree decl;
-     char *fnname;
+     const char *fnname;
 {
   int align;
 
@@ -1234,7 +1235,7 @@ assemble_string (p, size)
 static void
 asm_emit_uninitialised (decl, name, size, rounded)
      tree decl;
-     char * name;
+     const char * name;
      int size ATTRIBUTE_UNUSED;
      int rounded ATTRIBUTE_UNUSED;
 {
@@ -1323,7 +1324,7 @@ assemble_variable (decl, top_level, at_e
      int at_end ATTRIBUTE_UNUSED;
      int dont_output_data;
 {
-  register char *name;
+  register const char *name;
   unsigned int align;
   tree size_tree = NULL_TREE;
   int reloc = 0;
@@ -2371,7 +2372,7 @@ static int
 const_hash (exp)
      tree exp;
 {
-  register char *p;
+  register const char *p;
   register int len, hi, i;
   register enum tree_code code = TREE_CODE (exp);
 
@@ -2402,9 +2403,12 @@ const_hash (exp)
     case CONSTRUCTOR:
       if (TREE_CODE (TREE_TYPE (exp)) == SET_TYPE)
 	{
+	  char *tmp;
+
 	  len = int_size_in_bytes (TREE_TYPE (exp));
-	  p = (char *) alloca (len);
-	  get_set_constructor_bytes (exp, (unsigned char *) p, len);
+	  tmp = (char *) alloca (len);
+	  get_set_constructor_bytes (exp, (unsigned char *) tmp, len);
+	  p = tmp;
 	  break;
 	}
       else
@@ -2505,7 +2509,7 @@ compare_constant_1 (exp, p)
      tree exp;
      char *p;
 {
-  register char *strp;
+  register const char *strp;
   register int len;
   register enum tree_code code = TREE_CODE (exp);
 
@@ -2562,9 +2566,10 @@ compare_constant_1 (exp, p)
       if (TREE_CODE (TREE_TYPE (exp)) == SET_TYPE)
 	{
 	  int xlen = len = int_size_in_bytes (TREE_TYPE (exp));
+	  unsigned char *tmp = (unsigned char *) alloca (len);
 
-	  strp = (char *) alloca (len);
-	  get_set_constructor_bytes (exp, (unsigned char *) strp, len);
+	  get_set_constructor_bytes (exp, (unsigned char *) tmp, len);
+	  strp = tmp;
 	  if (bcmp ((char *) &xlen, p, sizeof xlen))
 	    return 0;
 
@@ -3679,7 +3684,7 @@ find_pool_constant (f, addr)
      rtx addr;
 {
   struct pool_sym *sym;
-  char *label = XSTR (addr, 0);
+  const char *label = XSTR (addr, 0);
 
   for (sym = f->varasm->x_const_rtx_sym_hash_table[SYMHASH (label)]; sym; sym = sym->next)
     if (sym->label == label)
@@ -3869,7 +3874,7 @@ mark_constant_pool ()
   for (pool = first_pool; pool; pool = pool->next)
     {
       struct pool_sym *sym;
-      char *label;
+      const char *label;
 
       /* skip unmarked entries; no insn refers to them. */
       if (!pool->mark)
@@ -4698,7 +4703,7 @@ void
 assemble_alias (decl, target)
      tree decl, target ATTRIBUTE_UNUSED;
 {
-  char *name;
+  const char *name;
 
   make_decl_rtl (decl, (char *) 0, 1);
   name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
diff -rup orig/egcs-CVS20000306/gcc/xcoffout.h egcs-CVS20000306/gcc/xcoffout.h
--- orig/egcs-CVS20000306/gcc/xcoffout.h	Mon Jan 17 11:53:13 2000
+++ egcs-CVS20000306/gcc/xcoffout.h	Mon Mar  6 19:20:47 2000
@@ -103,7 +103,7 @@ Boston, MA 02111-1307, USA.  */
   if (current_sym_addr && current_sym_code == N_FUN		\
       && GET_CODE (current_sym_addr) == SYMBOL_REF)		\
     {								\
-      char *_p = XSTR (current_sym_addr, 0);			\
+      const char *_p = XSTR (current_sym_addr, 0);		\
       if (*_p == '*')						\
 	fprintf (asmfile, "%s", _p+1);				\
       else							\
diff -rup orig/egcs-CVS20000306/gcc/config/alpha/alpha.md egcs-CVS20000306/gcc/config/alpha/alpha.md
--- orig/egcs-CVS20000306/gcc/config/alpha/alpha.md	Sat Feb 26 19:04:52 2000
+++ egcs-CVS20000306/gcc/config/alpha/alpha.md	Mon Mar  6 20:29:42 2000
@@ -3766,7 +3766,8 @@
   if (GET_CODE (operands[0]) == SYMBOL_REF)
     {
       extern char *savealloc ();
-      char *linksym, *symbol = XSTR (operands[0], 0);
+      const char *symbol = XSTR (operands[0], 0);
+      char *linksym;
       rtx linkage;
 
       if (*symbol == '*')
@@ -3874,7 +3875,8 @@
   if (GET_CODE (operands[1]) == SYMBOL_REF)
     {
       extern char *savealloc ();
-      char *linksym, *symbol = XSTR (operands[1], 0);
+      const char *symbol = XSTR (operands[1], 0);
+      char *linksym;
       rtx linkage;
 
       if (*symbol == '*')
diff -rup orig/egcs-CVS20000306/gcc/config/arm/aof.h egcs-CVS20000306/gcc/config/arm/aof.h
--- orig/egcs-CVS20000306/gcc/config/arm/aof.h	Tue Feb 15 11:11:43 2000
+++ egcs-CVS20000306/gcc/config/arm/aof.h	Mon Mar  6 19:25:32 2000
@@ -272,7 +272,7 @@ do {							\
 #define ASM_OUTPUT_ASCII(STREAM,PTR,LEN)		\
 {							\
   int i;						\
-  char *ptr = (PTR);					\
+  const char *ptr = (PTR);				\
   fprintf ((STREAM), "\tDCB");				\
   for (i = 0; i < (LEN); i++)				\
     fprintf ((STREAM), " &%02x%s", 			\
diff -rup orig/egcs-CVS20000306/gcc/config/arm/aout.h egcs-CVS20000306/gcc/config/arm/aout.h
--- orig/egcs-CVS20000306/gcc/config/arm/aout.h	Tue Nov  9 15:35:25 1999
+++ egcs-CVS20000306/gcc/config/arm/aout.h	Mon Mar  6 19:27:37 2000
@@ -252,7 +252,7 @@ Boston, MA 02111-1307, USA.  */
   fprintf (STREAM, "\t.byte\t%d\n", VALUE)
 
 #define ASM_OUTPUT_ASCII(STREAM, PTR, LEN)  \
-  output_ascii_pseudo_op (STREAM, (unsigned char *)(PTR), LEN)
+  output_ascii_pseudo_op (STREAM, (const unsigned char *)(PTR), LEN)
 
 /* Output a gap.  In fact we fill it with nulls.  */
 #define ASM_OUTPUT_SKIP(STREAM, NBYTES) 	\
diff -rup orig/egcs-CVS20000306/gcc/config/arm/arm-protos.h egcs-CVS20000306/gcc/config/arm/arm-protos.h
--- orig/egcs-CVS20000306/gcc/config/arm/arm-protos.h	Mon Feb 28 22:39:36 2000
+++ egcs-CVS20000306/gcc/config/arm/arm-protos.h	Mon Mar  6 20:07:20 2000
@@ -30,7 +30,7 @@ extern int    arm_regno_class 			PARAMS 
 extern int    arm_volatile_func			PARAMS ((void));
 extern int    const_ok_for_arm			PARAMS ((HOST_WIDE_INT));
 extern void   output_arm_prologue		PARAMS ((FILE *, int));
-extern void   output_ascii_pseudo_op		PARAMS ((FILE *, unsigned char *, int));
+extern void   output_ascii_pseudo_op		PARAMS ((FILE *, const unsigned char *, int));
 extern void   output_func_epilogue		PARAMS ((int));
 extern void   output_func_prologue		PARAMS ((FILE *, int));
 extern int    use_return_insn			PARAMS ((int));
@@ -44,8 +44,8 @@ extern void   aof_dump_pic_table		PARAMS
 extern char * aof_text_section			PARAMS ((void));
 #endif /* AOF_ASSEMBLER */
 /* Defined in pe.c */
-extern int    arm_dllexport_name_p 		PARAMS ((char *));
-extern int    arm_dllimport_name_p 		PARAMS ((char *));
+extern int    arm_dllexport_name_p 		PARAMS ((const char *));
+extern int    arm_dllimport_name_p 		PARAMS ((const char *));
 
 #define Mmode enum machine_mode
 
diff -rup orig/egcs-CVS20000306/gcc/config/arm/arm.c egcs-CVS20000306/gcc/config/arm/arm.c
--- orig/egcs-CVS20000306/gcc/config/arm/arm.c	Mon Feb 28 22:39:39 2000
+++ egcs-CVS20000306/gcc/config/arm/arm.c	Mon Mar  6 20:03:23 2000
@@ -1638,7 +1638,7 @@ arm_encode_call_attribute (decl, flag)
   tree decl;
   char flag;
 {
-  char * str = XSTR (XEXP (DECL_RTL (decl), 0), 0);
+  const char * str = XSTR (XEXP (DECL_RTL (decl), 0), 0);
   int    len = strlen (str);
   char * newstr;
 
@@ -5544,7 +5544,7 @@ int_log2 (power)
 void
 output_ascii_pseudo_op (stream, p, len)
      FILE * stream;
-     unsigned char * p;
+     const unsigned char * p;
      int len;
 {
   int i;
diff -rup orig/egcs-CVS20000306/gcc/config/arm/arm.h egcs-CVS20000306/gcc/config/arm/arm.h
--- orig/egcs-CVS20000306/gcc/config/arm/arm.h	Mon Feb 28 22:39:39 2000
+++ egcs-CVS20000306/gcc/config/arm/arm.h	Mon Mar  6 19:28:28 2000
@@ -2240,7 +2240,7 @@ extern struct rtx_def * arm_compare_op1;
   do										\
     {										\
       int mi_delta = (DELTA);							\
-      char * mi_op = mi_delta < 0 ? "sub" : "add";				\
+      const char *mi_op = mi_delta < 0 ? "sub" : "add";				\
       int shift = 0;								\
       int this_regno = (aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION)))	\
 		        ? 1 : 0);						\
diff -rup orig/egcs-CVS20000306/gcc/config/arm/elf.h egcs-CVS20000306/gcc/config/arm/elf.h
--- orig/egcs-CVS20000306/gcc/config/arm/elf.h	Mon Feb 28 22:39:41 2000
+++ egcs-CVS20000306/gcc/config/arm/elf.h	Mon Mar  6 20:03:54 2000
@@ -106,7 +106,7 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	\
   do									\
     {									\
-      char * name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		\
+      const char * name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		\
       if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		\
           && ! AT_END && TOP_LEVEL					\
 	  && DECL_INITIAL (DECL) == error_mark_node			\
diff -rup orig/egcs-CVS20000306/gcc/config/arm/pe.c egcs-CVS20000306/gcc/config/arm/pe.c
--- orig/egcs-CVS20000306/gcc/config/arm/pe.c	Mon Feb 28 22:39:41 2000
+++ egcs-CVS20000306/gcc/config/arm/pe.c	Mon Mar  6 20:08:40 2000
@@ -237,7 +237,7 @@ arm_dllimport_p (decl)
 
 int
 arm_dllexport_name_p (symbol)
-     char * symbol;
+     const char * symbol;
 {
   return symbol[0] == ARM_PE_FLAG_CHAR && symbol[1] == 'e' && symbol[2] == '.';
 }
@@ -246,7 +246,7 @@ arm_dllexport_name_p (symbol)
 
 int
 arm_dllimport_name_p (symbol)
-     char * symbol;
+     const char * symbol;
 {
   return symbol[0] == ARM_PE_FLAG_CHAR && symbol[1] == 'i' && symbol[2] == '.';
 }
@@ -258,7 +258,7 @@ void
 arm_mark_dllexport (decl)
      tree decl;
 {
-  char * oldname;
+  const char * oldname;
   char * newname;
   rtx rtlname;
   tree idp;
@@ -296,7 +296,7 @@ void
 arm_mark_dllimport (decl)
      tree decl;
 {
-  char * oldname;
+  const char * oldname;
   char * newname;
   tree idp;
   rtx rtlname, newrtl;
@@ -395,7 +395,7 @@ arm_pe_encode_section_info (decl)
 	   && GET_CODE (XEXP (XEXP (DECL_RTL (decl), 0), 0)) == SYMBOL_REF
 	   && arm_dllimport_name_p (XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0)))
     {
-      char *oldname = XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0);
+      const char *oldname = XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0);
       tree idp = get_identifier (oldname + 9);
       rtx newrtl = gen_rtx (SYMBOL_REF, Pmode, IDENTIFIER_POINTER (idp));
 
diff -rup orig/egcs-CVS20000306/gcc/config/arm/telf.h egcs-CVS20000306/gcc/config/arm/telf.h
--- orig/egcs-CVS20000306/gcc/config/arm/telf.h	Tue Feb 15 11:11:43 2000
+++ egcs-CVS20000306/gcc/config/arm/telf.h	Mon Mar  6 20:05:27 2000
@@ -175,8 +175,8 @@ extern int arm_structure_size_boundary;
 #define ASM_OUTPUT_DEF_FROM_DECLS(FILE,DECL1,DECL2)		\
   do						   		\
     {								\
-      char * LABEL1 = XSTR (XEXP (DECL_RTL (decl), 0), 0);	\
-      char * LABEL2 = IDENTIFIER_POINTER (DECL2);		\
+      const char * LABEL1 = XSTR (XEXP (DECL_RTL (decl), 0), 0);\
+      const char * LABEL2 = IDENTIFIER_POINTER (DECL2);		\
 								\
       if (TREE_CODE (DECL1) == FUNCTION_DECL)			\
 	{							\
@@ -427,7 +427,7 @@ dtors_section ()						\
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)\
   do								\
     {								\
-      char * name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);	\
+      const char * name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);	\
       if (!flag_inhibit_size_directive && DECL_SIZE (DECL)	\
           && ! AT_END && TOP_LEVEL				\
 	  && DECL_INITIAL (DECL) == error_mark_node		\
diff -rup orig/egcs-CVS20000306/gcc/config/arm/thumb.c egcs-CVS20000306/gcc/config/arm/thumb.c
--- orig/egcs-CVS20000306/gcc/config/arm/thumb.c	Thu Feb 17 17:02:32 2000
+++ egcs-CVS20000306/gcc/config/arm/thumb.c	Mon Mar  6 20:06:14 2000
@@ -1289,7 +1289,7 @@ thumb_function_prologue (f, frame_size)
 
   if (is_called_in_ARM_mode (current_function_decl))
     {
-      char * name;
+      const char * name;
       
       if (GET_CODE (DECL_RTL (current_function_decl)) != MEM)
 	abort();
diff -rup orig/egcs-CVS20000306/gcc/config/arm/thumb.h egcs-CVS20000306/gcc/config/arm/thumb.h
--- orig/egcs-CVS20000306/gcc/config/arm/thumb.h	Fri Feb 18 20:02:56 2000
+++ egcs-CVS20000306/gcc/config/arm/thumb.h	Mon Mar  6 19:30:04 2000
@@ -251,7 +251,7 @@ do { char dstr[30];							\
 #define ASM_OUTPUT_ASCII(STREAM, STRING, LEN)				\
 do {									\
   register int i, c, len = (LEN), cur_pos = 17;				\
-  register unsigned char *string = (unsigned char *)(STRING);		\
+  register const unsigned char *string = (const unsigned char *)(STRING); \
   fprintf ((STREAM), "\t.ascii\t\"");					\
   for (i = 0; i < len; i++)						\
     {									\
diff -rup orig/egcs-CVS20000306/gcc/config/avr/avr.h egcs-CVS20000306/gcc/config/avr/avr.h
--- orig/egcs-CVS20000306/gcc/config/avr/avr.h	Fri Feb 11 17:31:46 2000
+++ egcs-CVS20000306/gcc/config/avr/avr.h	Mon Mar  6 20:10:03 2000
@@ -2373,7 +2373,7 @@ do {									  \
 
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
diff -rup orig/egcs-CVS20000306/gcc/config/clipper/clix.h egcs-CVS20000306/gcc/config/clipper/clix.h
--- orig/egcs-CVS20000306/gcc/config/clipper/clix.h	Wed Sep 15 17:41:14 1999
+++ egcs-CVS20000306/gcc/config/clipper/clix.h	Mon Mar  6 19:31:18 2000
@@ -35,9 +35,9 @@ Boston, MA 02111-1307, USA.  */
 
 #define ASM_OUTPUT_ASCII(FILE,PTR,LEN)			\
 do {							\
-  unsigned char *s;					\
+  const unsigned char *s;				\
   int i;						\
-  for (i = 0, s = (unsigned char *)(PTR); i < (LEN); s++, i++)	\
+  for (i = 0, s = (const unsigned char *)(PTR); i < (LEN); s++, i++) \
     {							\
       if ((i % 8) == 0)					\
 	fputs ("\n\t.byte\t", (FILE));			\
diff -rup orig/egcs-CVS20000306/gcc/config/fx80/fx80.h egcs-CVS20000306/gcc/config/fx80/fx80.h
--- orig/egcs-CVS20000306/gcc/config/fx80/fx80.h	Tue Sep  7 01:48:28 1999
+++ egcs-CVS20000306/gcc/config/fx80/fx80.h	Mon Mar  6 19:33:11 2000
@@ -1118,7 +1118,7 @@ do { union { float f; long l;} tem;			\
   fprintf (FILE, "\n"))
 
 #define ASM_OUTPUT_ASCII(FILE,PTR,SIZE)               \
-do { int i; unsigned char *pp = (unsigned char *) (PTR);	\
+do { int i; const unsigned char *pp = (const unsigned char *) (PTR); \
   fprintf((FILE), "\t.byte %d", (unsigned int)*pp++);		\
   for (i = 1; i < (SIZE); ++i, ++pp) {				\
     if ((i % 8) == 0)						\
diff -rup orig/egcs-CVS20000306/gcc/config/i386/cygwin.h egcs-CVS20000306/gcc/config/i386/cygwin.h
--- orig/egcs-CVS20000306/gcc/config/i386/cygwin.h	Sat Feb 26 19:05:03 2000
+++ egcs-CVS20000306/gcc/config/i386/cygwin.h	Mon Mar  6 19:33:47 2000
@@ -390,7 +390,7 @@ do {									\
       enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type;		\
     } *sections;							\
   struct section_info *s;						\
-  char *mode;								\
+  const char *mode;							\
   enum sect_enum type;							\
 									\
   for (s = sections; s; s = s->next)					\
diff -rup orig/egcs-CVS20000306/gcc/config/i386/freebsd.h egcs-CVS20000306/gcc/config/i386/freebsd.h
--- orig/egcs-CVS20000306/gcc/config/i386/freebsd.h	Mon Jan 31 10:46:32 2000
+++ egcs-CVS20000306/gcc/config/i386/freebsd.h	Mon Mar  6 20:12:19 2000
@@ -197,7 +197,7 @@ Boston, MA 02111-1307, USA.  */
 
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)        \
 do {                                                                    \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);                  \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);            \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)	        \
          && ! AT_END && TOP_LEVEL                                       \
          && DECL_INITIAL (DECL) == error_mark_node                      \
diff -rup orig/egcs-CVS20000306/gcc/config/i386/i386-interix.h egcs-CVS20000306/gcc/config/i386/i386-interix.h
--- orig/egcs-CVS20000306/gcc/config/i386/i386-interix.h	Mon Jan 31 10:46:33 2000
+++ egcs-CVS20000306/gcc/config/i386/i386-interix.h	Mon Mar  6 19:37:18 2000
@@ -152,7 +152,8 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_OUTPUT_LIMITED_STRING(FILE, STR)				\
   do									\
     {									\
-      register unsigned char *_limited_str = (unsigned char *) (STR);	\
+      register const unsigned char *_limited_str =			\
+        (const unsigned char *) (STR);					\
       register unsigned ch;						\
       fprintf ((FILE), "\t%s\t\"", STRING_ASM_OP);			\
       for (; (ch = *_limited_str); _limited_str++)			\
@@ -187,12 +188,13 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\
   do									\
     {									\
-      register unsigned char *_ascii_bytes = (unsigned char *) (STR);	\
-      register unsigned char *limit = _ascii_bytes + (LENGTH);		\
+      register const unsigned char *_ascii_bytes =			\
+        (const unsigned char *) (STR);					\
+      register const unsigned char *limit = _ascii_bytes + (LENGTH);	\
       register unsigned bytes_in_chunk = 0;				\
       for (; _ascii_bytes < limit; _ascii_bytes++)			\
         {								\
-	  register unsigned char *p;					\
+	  register const unsigned char *p;				\
 	  if (bytes_in_chunk >= 64)					\
 	    {								\
 	      fputc ('\n', (FILE));					\
@@ -524,7 +526,7 @@ do {									\
       enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type;		\
     } *sections;							\
   struct section_info *s;						\
-  char *mode;								\
+  const char *mode;							\
   enum sect_enum type;							\
 									\
   for (s = sections; s; s = s->next)					\
diff -rup orig/egcs-CVS20000306/gcc/config/i386/i386-protos.h egcs-CVS20000306/gcc/config/i386/i386-protos.h
--- orig/egcs-CVS20000306/gcc/config/i386/i386-protos.h	Sat Feb 26 19:05:03 2000
+++ egcs-CVS20000306/gcc/config/i386/i386-protos.h	Mon Mar  6 19:07:21 2000
@@ -26,7 +26,7 @@ extern void optimization_options PARAMS 
 
 extern int ix86_can_use_return_insn_p PARAMS ((void));
 
-extern void asm_output_function_prefix PARAMS ((FILE *, char *));
+extern void asm_output_function_prefix PARAMS ((FILE *, const char *));
 extern void load_pic_register PARAMS ((void));
 extern HOST_WIDE_INT ix86_initial_elimination_offset PARAMS((int, int));
 extern void ix86_expand_prologue PARAMS ((void));
diff -rup orig/egcs-CVS20000306/gcc/config/i386/i386.c egcs-CVS20000306/gcc/config/i386/i386.c
--- orig/egcs-CVS20000306/gcc/config/i386/i386.c	Fri Mar  3 11:07:22 2000
+++ egcs-CVS20000306/gcc/config/i386/i386.c	Mon Mar  6 19:07:18 2000
@@ -1594,7 +1594,7 @@ static char *global_offset_table_name;
 void
 asm_output_function_prefix (file, name)
      FILE *file;
-     char *name ATTRIBUTE_UNUSED;
+     const char *name ATTRIBUTE_UNUSED;
 {
   rtx xops[2];
   int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
diff -rup orig/egcs-CVS20000306/gcc/config/i386/i386elf.h egcs-CVS20000306/gcc/config/i386/i386elf.h
--- orig/egcs-CVS20000306/gcc/config/i386/i386elf.h	Mon Jan 31 10:46:34 2000
+++ egcs-CVS20000306/gcc/config/i386/i386elf.h	Mon Mar  6 19:38:43 2000
@@ -127,12 +127,13 @@ do { long value[3];							\
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\
   do									\
     {									\
-      register unsigned char *_ascii_bytes = (unsigned char *) (STR);	\
-      register unsigned char *limit = _ascii_bytes + (LENGTH);		\
+      register const unsigned char *_ascii_bytes =			\
+        (const unsigned char *) (STR);					\
+      register const unsigned char *limit = _ascii_bytes + (LENGTH);	\
       register unsigned bytes_in_chunk = 0;				\
       for (; _ascii_bytes < limit; _ascii_bytes++)			\
         {								\
-	  register unsigned char *p;					\
+	  register const unsigned char *p;				\
 	  if (bytes_in_chunk >= 64)					\
 	    {								\
 	      fputc ('\n', (FILE));					\
diff -rup orig/egcs-CVS20000306/gcc/config/i386/osfrose.h egcs-CVS20000306/gcc/config/i386/osfrose.h
--- orig/egcs-CVS20000306/gcc/config/i386/osfrose.h	Mon Jan 31 10:46:37 2000
+++ egcs-CVS20000306/gcc/config/i386/osfrose.h	Mon Mar  6 20:12:51 2000
@@ -666,7 +666,7 @@ while (0)
 
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (TARGET_ELF							 \
 	 && !flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
diff -rup orig/egcs-CVS20000306/gcc/config/i386/ptx4-i.h egcs-CVS20000306/gcc/config/i386/ptx4-i.h
--- orig/egcs-CVS20000306/gcc/config/i386/ptx4-i.h	Mon Jan 31 10:46:37 2000
+++ egcs-CVS20000306/gcc/config/i386/ptx4-i.h	Mon Mar  6 19:39:40 2000
@@ -121,12 +121,13 @@ do { long value[3];							\
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\
   do									\
     {									\
-      register unsigned char *_ascii_bytes = (unsigned char *) (STR);	\
-      register unsigned char *limit = _ascii_bytes + (LENGTH);		\
+      register const unsigned char *_ascii_bytes =			\
+        (const unsigned char *) (STR);					\
+      register const unsigned char *limit = _ascii_bytes + (LENGTH);	\
       register unsigned bytes_in_chunk = 0;				\
       for (; _ascii_bytes < limit; _ascii_bytes++)			\
         {								\
-	  register unsigned char *p;					\
+	  register const unsigned char *p;				\
 	  if (bytes_in_chunk >= 64)					\
 	    {								\
 	      fputc ('\n', (FILE));					\
diff -rup orig/egcs-CVS20000306/gcc/config/i386/sco5.h egcs-CVS20000306/gcc/config/i386/sco5.h
--- orig/egcs-CVS20000306/gcc/config/i386/sco5.h	Sat Feb 26 19:05:08 2000
+++ egcs-CVS20000306/gcc/config/i386/sco5.h	Mon Mar  6 20:13:26 2000
@@ -222,7 +222,7 @@ do {									\
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
   if (TARGET_ELF) {							\
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
@@ -313,7 +313,8 @@ asm_output_aligned_bss (FILE, DECL, NAME
 #define ASM_OUTPUT_LIMITED_STRING(FILE, STR)				\
   do									\
     {									\
-      register unsigned char *_limited_str = (unsigned char *) (STR);	\
+      register const unsigned char *_limited_str =			\
+        (const unsigned char *) (STR);					\
       register unsigned ch;						\
       fprintf ((FILE), "%s\t\"", STRING_ASM_OP);			\
       for (; (ch = *_limited_str); _limited_str++)			\
@@ -341,12 +342,13 @@ asm_output_aligned_bss (FILE, DECL, NAME
 #undef ASM_OUTPUT_ASCII
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\
 do {									\
-      register unsigned char *_ascii_bytes = (unsigned char *) (STR);	\
-      register unsigned char *limit = _ascii_bytes + (LENGTH);		\
+      register const unsigned char *_ascii_bytes =			\
+        (const unsigned char *) (STR);					\
+      register const unsigned char *limit = _ascii_bytes + (LENGTH);	\
       register unsigned bytes_in_chunk = 0;				\
       for (; _ascii_bytes < limit; _ascii_bytes++)			\
         {								\
-	  register unsigned char *p;					\
+	  register unsigned const char *p;				\
 	  if (bytes_in_chunk >= 64)					\
 	    {								\
 	      fputc ('\n', (FILE));					\
@@ -468,9 +470,9 @@ do {									\
       enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type;                \
     } *sections;                                                        \
   struct section_info *s;                                               \
-  char *mode;                                                           \
+  const char *mode;                                                     \
   enum sect_enum type;                                                  \
-  char *sname = NAME ;							\
+  const char *sname = NAME ;						\
   if (strcmp(NAME, ".gcc_except_table") == 0) sname = ".gccexc" ;	\
                                                                         \
   for (s = sections; s; s = s->next)                                    \
diff -rup orig/egcs-CVS20000306/gcc/config/i386/sysv4.h egcs-CVS20000306/gcc/config/i386/sysv4.h
--- orig/egcs-CVS20000306/gcc/config/i386/sysv4.h	Mon Jan 31 10:46:39 2000
+++ egcs-CVS20000306/gcc/config/i386/sysv4.h	Mon Mar  6 19:42:33 2000
@@ -119,12 +119,13 @@ do { long value[3];							\
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\
   do									\
     {									\
-      register unsigned char *_ascii_bytes = (unsigned char *) (STR);	\
-      register unsigned char *limit = _ascii_bytes + (LENGTH);		\
+      register const unsigned char *_ascii_bytes =			\
+        (const unsigned char *) (STR);					\
+      register const unsigned char *limit = _ascii_bytes + (LENGTH);	\
       register unsigned bytes_in_chunk = 0;				\
       for (; _ascii_bytes < limit; _ascii_bytes++)			\
         {								\
-	  register unsigned char *p;					\
+	  register const unsigned char *p;				\
 	  if (bytes_in_chunk >= 64)					\
 	    {								\
 	      fputc ('\n', (FILE));					\
diff -rup orig/egcs-CVS20000306/gcc/config/i860/paragon.h egcs-CVS20000306/gcc/config/i860/paragon.h
--- orig/egcs-CVS20000306/gcc/config/i860/paragon.h	Wed Sep 15 17:41:14 1999
+++ egcs-CVS20000306/gcc/config/i860/paragon.h	Mon Mar  6 19:43:05 2000
@@ -122,8 +122,8 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)			\
   do								\
     {								\
-      register unsigned char *str = (unsigned char *) (STR);	\
-      register unsigned char *limit = str + (LENGTH);		\
+      register const unsigned char *str = (const unsigned char *) (STR); \
+      register const unsigned char *limit = str + (LENGTH);	\
       register unsigned bytes_in_chunk = 0;			\
       for (; str < limit; str++)				\
         {							\
diff -rup orig/egcs-CVS20000306/gcc/config/i860/sysv3.h egcs-CVS20000306/gcc/config/i860/sysv3.h
--- orig/egcs-CVS20000306/gcc/config/i860/sysv3.h	Wed Dec 16 16:05:40 1998
+++ egcs-CVS20000306/gcc/config/i860/sysv3.h	Mon Mar  6 19:43:51 2000
@@ -104,8 +104,8 @@ extern char *current_function_original_n
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\
   do									\
     {									\
-      register unsigned char *str = (unsigned char *) (STR);		\
-      register unsigned char *limit = str + (LENGTH);			\
+      register const unsigned char *str = (const unsigned char *) (STR); \
+      register const unsigned char *limit = str + (LENGTH);		\
       register unsigned bytes_in_chunk = 0;				\
       for (; str < limit; str++)					\
         {								\
diff -rup orig/egcs-CVS20000306/gcc/config/m32r/m32r.c egcs-CVS20000306/gcc/config/m32r/m32r.c
--- orig/egcs-CVS20000306/gcc/config/m32r/m32r.c	Sat Feb 26 19:05:10 2000
+++ egcs-CVS20000306/gcc/config/m32r/m32r.c	Mon Mar  6 20:14:34 2000
@@ -434,7 +434,7 @@ m32r_encode_section_info (decl)
     {
       rtx rtl = (TREE_CODE_CLASS (TREE_CODE (decl)) != 'd'
                  ? TREE_CST_RTL (decl) : DECL_RTL (decl));
-      char *str = XSTR (XEXP (rtl, 0), 0);
+      const char *str = XSTR (XEXP (rtl, 0), 0);
       int len = strlen (str);
       char *newstr = savealloc (len + 2);
       strcpy (newstr + 1, str);
diff -rup orig/egcs-CVS20000306/gcc/config/mcore/mcore-elf.h egcs-CVS20000306/gcc/config/mcore/mcore-elf.h
--- orig/egcs-CVS20000306/gcc/config/mcore/mcore-elf.h	Mon Feb 14 17:51:36 2000
+++ egcs-CVS20000306/gcc/config/mcore/mcore-elf.h	Mon Mar  6 20:16:26 2000
@@ -168,7 +168,7 @@ exports_section ()						\
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)         \
   do                                                                     \
     {                                                                    \
-      char * name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);                 \
+      const char * name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);           \
       if (!flag_inhibit_size_directive && DECL_SIZE (DECL)               \
           && ! AT_END && TOP_LEVEL                                       \
           && DECL_INITIAL (DECL) == error_mark_node                      \
diff -rup orig/egcs-CVS20000306/gcc/config/mcore/mcore.c egcs-CVS20000306/gcc/config/mcore/mcore.c
--- orig/egcs-CVS20000306/gcc/config/mcore/mcore.c	Mon Feb 14 17:51:36 2000
+++ egcs-CVS20000306/gcc/config/mcore/mcore.c	Mon Mar  6 20:16:03 2000
@@ -3423,7 +3423,7 @@ mcore_encode_section_info (decl)
 	   && GET_CODE (XEXP (XEXP (DECL_RTL (decl), 0), 0)) == SYMBOL_REF
 	   && mcore_dllimport_name_p (XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0)))
     {
-      char * oldname = XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0);
+      const char * oldname = XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0);
       tree idp = get_identifier (oldname + 9);
       rtx newrtl = gen_rtx (SYMBOL_REF, Pmode, IDENTIFIER_POINTER (idp));
 
diff -rup orig/egcs-CVS20000306/gcc/config/mips/elf.h egcs-CVS20000306/gcc/config/mips/elf.h
--- orig/egcs-CVS20000306/gcc/config/mips/elf.h	Fri Mar  3 16:29:54 2000
+++ egcs-CVS20000306/gcc/config/mips/elf.h	Mon Mar  6 20:17:30 2000
@@ -161,7 +161,7 @@ do {									\
 #undef ASM_FINISH_DECLARE_OBJECT
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
diff -rup orig/egcs-CVS20000306/gcc/config/mips/elf64.h egcs-CVS20000306/gcc/config/mips/elf64.h
--- orig/egcs-CVS20000306/gcc/config/mips/elf64.h	Sat Jan 22 14:49:58 2000
+++ egcs-CVS20000306/gcc/config/mips/elf64.h	Mon Mar  6 20:17:05 2000
@@ -142,7 +142,7 @@ do {								\
 #undef ASM_FINISH_DECLARE_OBJECT
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
diff -rup orig/egcs-CVS20000306/gcc/config/mips/iris6.h egcs-CVS20000306/gcc/config/mips/iris6.h
--- orig/egcs-CVS20000306/gcc/config/mips/iris6.h	Tue Feb  1 12:14:00 2000
+++ egcs-CVS20000306/gcc/config/mips/iris6.h	Mon Mar  6 20:17:52 2000
@@ -458,7 +458,7 @@ while (0)
 
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
diff -rup orig/egcs-CVS20000306/gcc/config/mips/mips.h egcs-CVS20000306/gcc/config/mips/mips.h
--- orig/egcs-CVS20000306/gcc/config/mips/mips.h	Sat Feb 26 19:05:18 2000
+++ egcs-CVS20000306/gcc/config/mips/mips.h	Mon Mar  6 19:44:36 2000
@@ -4527,7 +4527,7 @@ do {									\
 /* Output #ident as a in the read-only data section.  */
 #define ASM_OUTPUT_IDENT(FILE, STRING)					\
 {									\
-  char *p = STRING;							\
+  const char *p = STRING;						\
   int size = strlen (p) + 1;						\
   rdata_section ();							\
   assemble_string (p, size);						\
diff -rup orig/egcs-CVS20000306/gcc/config/mips/mips.md egcs-CVS20000306/gcc/config/mips/mips.md
--- orig/egcs-CVS20000306/gcc/config/mips/mips.md	Sat Feb 26 19:05:20 2000
+++ egcs-CVS20000306/gcc/config/mips/mips.md	Mon Mar  6 20:31:03 2000
@@ -4775,7 +4775,7 @@ move\\t%0,%z4\\n\\
       && GET_CODE (operands[1]) == SYMBOL_REF
       && SYMBOL_REF_FLAG (operands[1]))
     {
-      char *name = XSTR (operands[1], 0);
+      const char *name = XSTR (operands[1], 0);
 
       if (name[0] != '*'
 	  || strncmp (name + 1, LOCAL_LABEL_PREFIX,
@@ -5197,7 +5197,7 @@ move\\t%0,%z4\\n\\
       && GET_CODE (operands[1]) == SYMBOL_REF
       && SYMBOL_REF_FLAG (operands[1]))
     {
-      char *name = XSTR (operands[1], 0);
+      const char *name = XSTR (operands[1], 0);
 
       if (name[0] != '*'
 	  || strncmp (name + 1, LOCAL_LABEL_PREFIX,
diff -rup orig/egcs-CVS20000306/gcc/config/mips/netbsd.h egcs-CVS20000306/gcc/config/mips/netbsd.h
--- orig/egcs-CVS20000306/gcc/config/mips/netbsd.h	Wed Sep 15 17:41:15 1999
+++ egcs-CVS20000306/gcc/config/mips/netbsd.h	Mon Mar  6 20:19:09 2000
@@ -166,7 +166,7 @@ Boston, MA 02111-1307, USA.  */
 #undef ASM_FINISH_DECLARE_OBJECT
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
diff -rup orig/egcs-CVS20000306/gcc/config/netbsd.h egcs-CVS20000306/gcc/config/netbsd.h
--- orig/egcs-CVS20000306/gcc/config/netbsd.h	Wed Sep 15 17:41:13 1999
+++ egcs-CVS20000306/gcc/config/netbsd.h	Mon Mar  6 20:01:07 2000
@@ -169,7 +169,7 @@
 #undef ASM_FINISH_DECLARE_OBJECT
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
diff -rup orig/egcs-CVS20000306/gcc/config/openbsd.h egcs-CVS20000306/gcc/config/openbsd.h
--- orig/egcs-CVS20000306/gcc/config/openbsd.h	Wed Sep 15 17:41:13 1999
+++ egcs-CVS20000306/gcc/config/openbsd.h	Mon Mar  6 20:01:22 2000
@@ -251,7 +251,7 @@ Boston, MA 02111-1307, USA.  */
 #undef ASM_FINISH_DECLARE_OBJECT
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
diff -rup orig/egcs-CVS20000306/gcc/config/ptx4.h egcs-CVS20000306/gcc/config/ptx4.h
--- orig/egcs-CVS20000306/gcc/config/ptx4.h	Sun Oct 24 15:26:32 1999
+++ egcs-CVS20000306/gcc/config/ptx4.h	Mon Mar  6 20:02:12 2000
@@ -680,7 +680,7 @@ dtors_section ()							\
 
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)	 \
 do {									 \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);			 \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);		 \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)		 \
          && ! AT_END && TOP_LEVEL					 \
 	 && DECL_INITIAL (DECL) == error_mark_node			 \
@@ -764,7 +764,8 @@ do {									 \
 #define ASM_OUTPUT_LIMITED_STRING(FILE, STR)				\
   do									\
     {									\
-      register unsigned char *_limited_str = (unsigned char *) (STR);	\
+      register const unsigned char *_limited_str =			\
+        (const unsigned char *) (STR);					\
       register unsigned ch;						\
       fprintf ((FILE), "\t%s\t\"", STRING_ASM_OP);			\
       for (; ch = *_limited_str; _limited_str++)			\
@@ -799,12 +800,13 @@ do {									 \
 #define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\
   do									\
     {									\
-      register unsigned char *_ascii_bytes = (unsigned char *) (STR);	\
-      register unsigned char *limit = _ascii_bytes + (LENGTH);		\
+      register const unsigned char *_ascii_bytes =			\
+        (const unsigned char *) (STR);					\
+      register const unsigned char *limit = _ascii_bytes + (LENGTH);	\
       register unsigned bytes_in_chunk = 0;				\
       for (; _ascii_bytes < limit; _ascii_bytes++)			\
         {								\
-	  register unsigned char *p;					\
+	  register const unsigned char *p;				\
 	  if (bytes_in_chunk >= 60)					\
 	    {								\
 	      fprintf ((FILE), "\"\n");					\
diff -rup orig/egcs-CVS20000306/gcc/config/rs6000/rs6000.c egcs-CVS20000306/gcc/config/rs6000/rs6000.c
--- orig/egcs-CVS20000306/gcc/config/rs6000/rs6000.c	Sat Feb 26 19:05:28 2000
+++ egcs-CVS20000306/gcc/config/rs6000/rs6000.c	Mon Mar  6 20:23:00 2000
@@ -4209,7 +4209,7 @@ rs6000_allocate_stack_space (file, size,
       else if (GET_CODE (stack_limit_rtx) == SYMBOL_REF
 	       && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS))
 	{
-	  char * l_name = XSTR (stack_limit_rtx, 0);
+	  const char * l_name = XSTR (stack_limit_rtx, 0);
 	  const char * stripped_name;
 
 	  STRIP_NAME_ENCODING (stripped_name, l_name);
@@ -4662,7 +4662,7 @@ output_epilog (file, size)
      different traceback table.  */
   if (DEFAULT_ABI == ABI_AIX && ! flag_inhibit_size_directive)
     {
-      char *fname = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0);
+      const char *fname = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0);
       int fixed_parms, float_parms, parm_info;
       int i;
 
@@ -4895,7 +4895,7 @@ output_mi_thunk (file, thunk_fndecl, del
 {
   const char *this_reg = reg_names[ aggregate_value_p (TREE_TYPE (TREE_TYPE (function))) ? 4 : 3 ];
   const char *prefix;
-  char *fname;
+  const char *fname;
   const char *r0	 = reg_names[0];
   const char *sp	 = reg_names[1];
   const char *toc	 = reg_names[2];
@@ -5097,7 +5097,7 @@ output_toc (file, x, labelno)
      int labelno;
 {
   char buf[256];
-  char *name = buf;
+  const char *name = buf;
   const char *real_name;
   rtx base = x;
   int offset = 0;
diff -rup orig/egcs-CVS20000306/gcc/config/rs6000/rs6000.md egcs-CVS20000306/gcc/config/rs6000/rs6000.md
--- orig/egcs-CVS20000306/gcc/config/rs6000/rs6000.md	Sat Feb 26 19:05:33 2000
+++ egcs-CVS20000306/gcc/config/rs6000/rs6000.md	Mon Mar  6 20:31:32 2000
@@ -6018,7 +6018,7 @@
 	  && GET_CODE (operands[1]) == SYMBOL_REF
 	  && XSTR (operands[1], 0)[0] == '.')
 	{
-	  char *name = XSTR (operands[1], 0);
+	  const char *name = XSTR (operands[1], 0);
 	  rtx new_ref;
 	  while (*name == '.')
 	    name++;
diff -rup orig/egcs-CVS20000306/gcc/config/rs6000/sysv4.h egcs-CVS20000306/gcc/config/rs6000/sysv4.h
--- orig/egcs-CVS20000306/gcc/config/rs6000/sysv4.h	Tue Jan  4 15:29:31 2000
+++ egcs-CVS20000306/gcc/config/rs6000/sysv4.h	Mon Mar  6 20:24:12 2000
@@ -804,7 +804,7 @@ do {									\
 	   && XSTR (VALUE, 0)[0] == '.'					\
 	   && (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_NT))	\
     {									\
-      char *name = XSTR (VALUE, 0);					\
+      const char *name = XSTR (VALUE, 0);				\
       while (*name == '.')						\
 	name++;								\
 									\
@@ -890,7 +890,7 @@ do {									\
       enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type;		\
     } *sections;							\
   struct section_info *s;						\
-  char *mode;								\
+  const char *mode;							\
   enum sect_enum type;							\
 									\
   for (s = sections; s; s = s->next)					\
diff -rup orig/egcs-CVS20000306/gcc/config/tahoe/harris.h egcs-CVS20000306/gcc/config/tahoe/harris.h
--- orig/egcs-CVS20000306/gcc/config/tahoe/harris.h	Wed Dec 16 16:14:09 1998
+++ egcs-CVS20000306/gcc/config/tahoe/harris.h	Mon Mar  6 19:50:47 2000
@@ -67,7 +67,7 @@ Boston, MA 02111-1307, USA.  */
 
 #define ASM_OUTPUT_ASCII(FILE, PTR, SIZE)		\
 do {							\
-  unsigned char *_p = (PTR);				\
+  const unsigned char *_p = (PTR);			\
   int _thissize = (SIZE);				\
   fprintf ((FILE), "\t.ascii \"");			\
   for (i = 0; i < _thissize; i++)			\
diff -rup orig/egcs-CVS20000306/gcc/config/v850/v850.c egcs-CVS20000306/gcc/config/v850/v850.c
--- orig/egcs-CVS20000306/gcc/config/v850/v850.c	Sat Feb 26 19:05:45 2000
+++ egcs-CVS20000306/gcc/config/v850/v850.c	Mon Mar  6 20:27:49 2000
@@ -411,7 +411,7 @@ print_operand (file, x, code)
     case 'O':
       if (special_symbolref_operand (x, VOIDmode))
         {
-          char* name;
+          const char *name;
 
 	  if (GET_CODE (x) == SYMBOL_REF)
 	    name = XSTR (x, 0);
@@ -596,9 +596,9 @@ print_operand_address (file, addr)
     case SYMBOL_REF:
       if (ENCODED_NAME_P (XSTR (addr, 0)))
         {
-          char* name = XSTR (addr, 0);
-          char* off_name;
-          char* reg_name;
+          const char *name = XSTR (addr, 0);
+          const char *off_name;
+          const char *reg_name;
 
           if (ZDA_NAME_P (name))
             {
@@ -628,9 +628,9 @@ print_operand_address (file, addr)
     case CONST:
       if (special_symbolref_operand (addr, VOIDmode))
         {
-          char* name = XSTR (XEXP (XEXP (addr, 0), 0), 0);
-          char* off_name;
-          char* reg_name;
+          const char *name = XSTR (XEXP (XEXP (addr, 0), 0), 0);
+          const char *off_name;
+          const char *reg_name;
 
           if (ZDA_NAME_P (name))
             {
@@ -2090,7 +2090,7 @@ void
 v850_encode_data_area (decl)
      tree decl;
 {
-  char * str = XSTR (XEXP (DECL_RTL (decl), 0), 0);
+  const char *str = XSTR (XEXP (DECL_RTL (decl), 0), 0);
   int    len = strlen (str);
   char * newstr;
 
@@ -2099,7 +2099,7 @@ v850_encode_data_area (decl)
     {
       if (DECL_SECTION_NAME (decl))
 	{
-	  char * name = TREE_STRING_POINTER (DECL_SECTION_NAME (decl));
+	  const char *name = TREE_STRING_POINTER (DECL_SECTION_NAME (decl));
 	  
 	  if (streq (name, ".zdata") || streq (name, ".zbss"))
 	    v850_set_data_area (decl, DATA_AREA_ZDA);
diff -rup orig/egcs-CVS20000306/gcc/ch/grant.c egcs-CVS20000306/gcc/ch/grant.c
--- orig/egcs-CVS20000306/gcc/ch/grant.c	Sat Feb 26 13:24:01 2000
+++ egcs-CVS20000306/gcc/ch/grant.c	Mon Mar  6 19:59:41 2000
@@ -2546,7 +2546,7 @@ globalize_decl (decl)
     {
       extern	FILE	*asm_out_file;
       extern	char	*first_global_object_name;
-      char		*name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
+      const char	*name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
 	
       if (!first_global_object_name)
 	first_global_object_name = name + (name[0] == '*');
diff -rup orig/egcs-CVS20000306/gcc/cp/decl2.c egcs-CVS20000306/gcc/cp/decl2.c
--- orig/egcs-CVS20000306/gcc/cp/decl2.c	Sat Mar  4 09:08:14 2000
+++ egcs-CVS20000306/gcc/cp/decl2.c	Mon Mar  6 19:57:36 2000
@@ -2840,7 +2840,7 @@ finish_objects (method_type, initp, body
      int method_type, initp;
      tree body;
 {
-  char *fnname;
+  const char *fnname;
   tree fn;
 
   /* Finish up. */
diff -rup orig/egcs-CVS20000306/gcc/cp/method.c egcs-CVS20000306/gcc/cp/method.c
--- orig/egcs-CVS20000306/gcc/cp/method.c	Sat Feb 26 19:05:51 2000
+++ egcs-CVS20000306/gcc/cp/method.c	Mon Mar  6 19:58:03 2000
@@ -2098,7 +2098,7 @@ emit_thunk (thunk_fndecl)
 #ifdef ASM_OUTPUT_MI_THUNK
   if (!flag_syntax_only)
     {
-      char *fnname;
+      const char *fnname;
       current_function_decl = thunk_fndecl;
       /* Make sure we build up its RTL before we go onto the
 	 temporary obstack.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]