OSDN Git Service

* builtins.c (expand_builtin_setjmp_receiver): Const-ify.
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 7 Oct 2001 16:51:11 +0000 (16:51 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 7 Oct 2001 16:51:11 +0000 (16:51 +0000)
* c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
Likewise.
* c-dump.c (dump_option_value_info): Likewise.
* c-format.c (format_length_info, format_char_info,
format_flag_spec, format_flag_pair, format_kind_info): Likewise.
* collect2.c (names): Likewise.
* cppdefault.h (default_include): Likewise.
* cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
* flow.c (life_analysis): Likewise.
* gcc.c (dir_separator_str, modify_target, option_map,
target_option_translations, spec_list_1, extra_specs_1,
init_spec): Likewise.
* gcov.c (gcov_version_string): Likewise.
* genattr.c (write_units): Likewise.
* genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
* gengenrtl.c (rtx_definition, defs): Likewise.
* genrecog.c (pred_table): Likewise.
* global.c (global_alloc): Likewise.
* lcm.c (optimize_mode_switching): Likewise.
* local-alloc.c (find_free_reg): Likewise.
* params.h (param_info): Likewise.
* predict.c (predictor_info): Likewise.
* protoize.c (unexpansion_struct): Likewise.
* real.c (bmask): Likewise.
* recog.h (insn_operand_data, insn_data): Likewise.
* regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
* stmt.c (expand_nl_goto_receiver): Likewise.
* toplev.c (da, debug_args, lang_opt, documented_lang_options,
target_switches, target_options): Likewise.
* tradcif.y (token, tokentab2, yylex): Likewise.
* tree.h (attribute_spec): Likewise.

* alpha.c (override_options, alpha_lookup_xfloating_lib_func):
Likewise.
* arc.c (arc_output_function_epilogue): Likewise.
* arm.c (processors, all_cores, all_architectures,
arm_override_options, isr_attribute_arg, isr_attribute_args,
arm_isr_value): Likewise.
* avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
Likewise.
* c4x.c (c4x_int_reglist): Likewise.
* d30v.c (override_options): Likewise.
* h8300.c (shift_insn): Likewise.
* i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
* i386.h (processor_costs, ix86_cost): Likewise.
* m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
* m68hc11.h (processor_costs, m68hc11_cost): Likewise.
* m68k.c (codes_68881, codes_FPA): Likewise.
* m88k.c (mode_from_align, max_from_align, all_from_align,
best_from_align, m_options): Likewise.
* m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
* mcore.c (mode_from_align): Likewise.
* mips/elf64.h (UNIQUE_SECTION): Likewise.
* mips/iris6gld.h (UNIQUE_SECTION): Likewise.
* mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
* mips.h (mips_regno_to_class): Likewise.
* ns32k.c (scales): Likewise.
* pa.c (import_string, magic_milli): Likewise.
* rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
* sparc.c (leaf_reg_remap, sparc_override_options,
reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
Likewise.
* sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.

cp:
* class.c (build_vtable_entry_ref): Const-ify.
* decl.c (predefined_identifier,
initialize_predefined_identifiers): Likewise.
* init.c (build_new_1): Likewise.
* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
Likewise.

f:
* bad.c (_ffebad_message_, ffebad_messages_): Const-ify.
* bld.c (ffebld_arity_op_): Likewise.
* bld.h (ffebld_arity_op_): Likewise.
* com.c (ffecom_init_0): Likewise.
* intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
_ffeintrin_imp_, names, gens, imps, specs, cc_pair,
cc_descriptions, cc_summaries): Likewise.
* intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
_ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_,
ffeintrin_imps_, ffeintrin_specs_): Likewise.

java:
* jcf-io.c (format_uint): Const-ify.
* lang.c (java_tree_code_type, java_tree_code_length): Likewise.
* lex.c (java_get_line_col): Likewise.
* parse.y (build_incdec): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46062 138bc75d-0d04-0410-961f-82ee72b054a4

71 files changed:
gcc/ChangeLog
gcc/builtins.c
gcc/c-common.c
gcc/c-dump.c
gcc/c-format.c
gcc/c-lex.c
gcc/collect2.c
gcc/config/alpha/alpha.c
gcc/config/arc/arc.c
gcc/config/arm/arm.c
gcc/config/avr/avr.c
gcc/config/c4x/c4x.c
gcc/config/d30v/d30v.c
gcc/config/h8300/h8300.c
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/m68hc11/m68hc11.c
gcc/config/m68hc11/m68hc11.h
gcc/config/m68k/m68k.c
gcc/config/m88k/m88k.c
gcc/config/m88k/m88k.h
gcc/config/mcore/mcore.c
gcc/config/mips/elf64.h
gcc/config/mips/iris6gld.h
gcc/config/mips/mips.c
gcc/config/mips/mips.h
gcc/config/ns32k/ns32k.c
gcc/config/pa/pa.c
gcc/config/rs6000/rs6000.c
gcc/config/sparc/sparc.c
gcc/config/sparc/sparc.h
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/decl.c
gcc/cp/init.c
gcc/cp/lex.c
gcc/cppdefault.h
gcc/cppexp.c
gcc/f/ChangeLog
gcc/f/bad.c
gcc/f/bld.c
gcc/f/bld.h
gcc/f/com.c
gcc/f/intdoc.c
gcc/f/intrin.c
gcc/flow.c
gcc/gcc.c
gcc/gcov.c
gcc/genattr.c
gcc/genattrtab.c
gcc/gengenrtl.c
gcc/genpreds.c
gcc/genrecog.c
gcc/global.c
gcc/java/ChangeLog
gcc/java/jcf-io.c
gcc/java/lang.c
gcc/java/lex.c
gcc/java/parse.y
gcc/lcm.c
gcc/local-alloc.c
gcc/params.h
gcc/predict.c
gcc/protoize.c
gcc/real.c
gcc/recog.h
gcc/regclass.c
gcc/stmt.c
gcc/toplev.c
gcc/tradcif.y
gcc/tree.h

index 8ad7b71..69b837b 100644 (file)
@@ -1,3 +1,74 @@
+2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
+       * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
+       Likewise.
+       * c-dump.c (dump_option_value_info): Likewise.
+       * c-format.c (format_length_info, format_char_info,
+       format_flag_spec, format_flag_pair, format_kind_info): Likewise.
+       * collect2.c (names): Likewise.
+       * cppdefault.h (default_include): Likewise.
+       * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
+       * flow.c (life_analysis): Likewise.
+       * gcc.c (dir_separator_str, modify_target, option_map,
+       target_option_translations, spec_list_1, extra_specs_1,
+       init_spec): Likewise.
+       * gcov.c (gcov_version_string): Likewise.
+       * genattr.c (write_units): Likewise.
+       * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
+       * gengenrtl.c (rtx_definition, defs): Likewise.
+       * genrecog.c (pred_table): Likewise.
+       * global.c (global_alloc): Likewise.
+       * lcm.c (optimize_mode_switching): Likewise.
+       * local-alloc.c (find_free_reg): Likewise.
+       * params.h (param_info): Likewise.
+       * predict.c (predictor_info): Likewise.
+       * protoize.c (unexpansion_struct): Likewise.
+       * real.c (bmask): Likewise.
+       * recog.h (insn_operand_data, insn_data): Likewise.
+       * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
+       * stmt.c (expand_nl_goto_receiver): Likewise.
+       * toplev.c (da, debug_args, lang_opt, documented_lang_options,
+       target_switches, target_options): Likewise.
+       * tradcif.y (token, tokentab2, yylex): Likewise.
+       * tree.h (attribute_spec): Likewise.
+       
+       * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
+       Likewise.
+       * arc.c (arc_output_function_epilogue): Likewise.
+       * arm.c (processors, all_cores, all_architectures,
+       arm_override_options, isr_attribute_arg, isr_attribute_args,
+       arm_isr_value): Likewise.
+       * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
+       Likewise.
+       * c4x.c (c4x_int_reglist): Likewise.
+       * d30v.c (override_options): Likewise.
+       * h8300.c (shift_insn): Likewise.
+       * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
+       pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
+       ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
+       builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
+       ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
+       * i386.h (processor_costs, ix86_cost): Likewise.
+       * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
+       * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
+       * m68k.c (codes_68881, codes_FPA): Likewise.
+       * m88k.c (mode_from_align, max_from_align, all_from_align,
+       best_from_align, m_options): Likewise.
+       * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
+       * mcore.c (mode_from_align): Likewise.
+       * mips/elf64.h (UNIQUE_SECTION): Likewise.
+       * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
+       * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
+       * mips.h (mips_regno_to_class): Likewise.
+       * ns32k.c (scales): Likewise.
+       * pa.c (import_string, magic_milli): Likewise.
+       * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
+       * sparc.c (leaf_reg_remap, sparc_override_options,
+       reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
+       Likewise.
+       * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
+
 2001-10-07  Dale Johannesen  <dalej@apple.com>
 
        * reload1.c (reload_reg_free_p): Teach register interference
index f5e1beb..0576886 100644 (file)
@@ -530,7 +530,7 @@ expand_builtin_setjmp_receiver (receiver_label)
     {
 #ifdef ELIMINABLE_REGS
       size_t i;
-      static struct elims {int from, to;} elim_regs[] = ELIMINABLE_REGS;
+      static const struct elims {const int from, to;} elim_regs[] = ELIMINABLE_REGS;
 
       for (i = 0; i < ARRAY_SIZE (elim_regs); i++)
        if (elim_regs[i].from == ARG_POINTER_REGNUM
index 2f5b00a..da90224 100644 (file)
@@ -220,9 +220,9 @@ int skip_evaluation;
 /* Information about how a function name is generated.  */
 struct fname_var_t
 {
-  tree *decl;  /* pointer to the VAR_DECL.  */
-  unsigned rid;        /* RID number for the identifier.  */
-  int pretty;  /* How pretty is it? */
+  tree *const decl;    /* pointer to the VAR_DECL.  */
+  const unsigned rid;  /* RID number for the identifier.  */
+  const int pretty;    /* How pretty is it? */
 };
 
 /* The three ways of getting then name of the current function.  */
@@ -3446,7 +3446,7 @@ c_unsafe_for_reeval (exp)
 
 #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE,
 
-static char c_tree_code_type[] = {
+static const char c_tree_code_type[] = {
   'x',
 #include "c-common.def"
 };
@@ -3458,7 +3458,7 @@ static char c_tree_code_type[] = {
 
 #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH,
 
-static int c_tree_code_length[] = {
+static const int c_tree_code_length[] = {
   0,
 #include "c-common.def"
 };
index 904e76b..c26f288 100644 (file)
@@ -809,8 +809,8 @@ static struct dump_file_info dump_files[TDI_end] =
 /* Define a name->number mapping for a dump flag value. */
 struct dump_option_value_info
 {
-  const char *name;            /* the name of the value */
-  int value;                   /* the value of the name */
+  const char *const name;      /* the name of the value */
+  const int value;             /* the value of the name */
 };
 
 /* Table of dump options. This must be consistent with the TDF_* flags
index ea6ef57..19bbcce 100644 (file)
@@ -387,15 +387,15 @@ enum
 typedef struct
 {
   /* Name of the single-character length modifier.  */
-  const char *name;
+  const char *const name;
   /* Index into a format_char_info.types array.  */
-  enum format_lengths index;
+  const enum format_lengths index;
   /* Standard version this length appears in.  */
-  enum format_std_version std;
+  const enum format_std_version std;
   /* Same, if the modifier can be repeated, or NULL if it can't.  */
-  const char *double_name;
-  enum format_lengths double_index;
-  enum format_std_version double_std;
+  const char *const double_name;
+  const enum format_lengths double_index;
+  const enum format_std_version double_std;
 } format_length_info;
 
 
@@ -424,18 +424,18 @@ typedef struct
    which act identically), and the length modifiers used with it.  */
 typedef struct
 {
-  const char *format_chars;
-  int pointer_count;
-  enum format_std_version std;
+  const char *const format_chars;
+  const int pointer_count;
+  const enum format_std_version std;
   /* Types accepted for each length modifier.  */
-  format_type_detail types[FMT_LEN_MAX];
+  const format_type_detail types[FMT_LEN_MAX];
   /* List of other modifier characters allowed with these specifiers.
      This lists flags, and additionally "w" for width, "p" for precision
      (right precision, for strfmon), "#" for left precision (strfmon),
      "a" for scanf "a" allocation extension (not applicable in C99 mode),
      "*" for scanf suppression, and "E" and "O" for those strftime
      modifiers.  */
-  const char *flag_chars;
+  const char *const flag_chars;
   /* List of additional flags describing these conversion specifiers.
      "c" for generic character pointers being allowed, "2" for strftime
      two digit year formats, "3" for strftime formats giving two digit
@@ -445,7 +445,7 @@ typedef struct
      "R" if the argument is a pointer which is dereferenced and read from,
      "i" for printf integer formats where the '0' flag is ignored with
      precision, and "[" for the starting character of a scanf scanset.  */
-  const char *flags2;
+  const char *const flags2;
 } format_char_info;
 
 
@@ -453,7 +453,7 @@ typedef struct
 typedef struct
 {
   /* The flag character in question (0 for end of array).  */
-  int flag_char;
+  const int flag_char;
   /* Zero if this entry describes the flag character in general, or a
      non-zero character that may be found in flags2 if it describes the
      flag when used with certain formats only.  If the latter, only
@@ -462,18 +462,18 @@ typedef struct
      will be used, if non-NULL and the standard version is higher than
      the unpredicated one, for any pedantic warning.  For example, 'o'
      for strftime formats (meaning 'O' is an extension over C99).  */
-  int predicate;
+  const int predicate;
   /* Nonzero if the next character after this flag in the format should
      be skipped ('=' in strfmon), zero otherwise.  */
-  int skip_next_char;
+  const int skip_next_char;
   /* The name to use for this flag in diagnostic messages.  For example,
      N_("`0' flag"), N_("field width").  */
-  const char *name;
+  const char *const name;
   /* Long name for this flag in diagnostic messages; currently only used for
      "ISO C does not support ...".  For example, N_("the `I' printf flag").  */
-  const char *long_name;
+  const char *const long_name;
   /* The standard version in which it appeared.  */
-  enum format_std_version std;
+  const enum format_std_version std;
 } format_flag_spec;
 
 
@@ -482,16 +482,16 @@ typedef struct
 typedef struct
 {
   /* The first flag character in question (0 for end of array).  */
-  int flag_char1;
+  const int flag_char1;
   /* The second flag character.  */
-  int flag_char2;
+  const int flag_char2;
   /* Non-zero if the message should say that the first flag is ignored with
      the second, zero if the combination should simply be objected to.  */
-  int ignored;
+  const int ignored;
   /* Zero if this entry applies whenever this flag combination occurs,
      a non-zero character from flags2 if it only applies in some
      circumstances (e.g. 'i' for printf formats ignoring 0 with precision).  */
-  int predicate;
+  const int predicate;
 } format_flag_pair;
 
 
@@ -500,43 +500,43 @@ typedef struct
 {
   /* The name of this kind of format, for use in diagnostics.  Also
      the name of the attribute (without preceding and following __).  */
-  const char *name;
+  const char *const name;
   /* Specifications of the length modifiers accepted; possibly NULL.  */
-  const format_length_info *length_char_specs;
+  const format_length_info *const length_char_specs;
   /* Details of the conversion specification characters accepted.  */
-  const format_char_info *conversion_specs;
+  const format_char_info *const conversion_specs;
   /* String listing the flag characters that are accepted.  */
-  const char *flag_chars;
+  const char *const flag_chars;
   /* String listing modifier characters (strftime) accepted.  May be NULL.  */
-  const char *modifier_chars;
+  const char *const modifier_chars;
   /* Details of the flag characters, including pseudo-flags.  */
-  const format_flag_spec *flag_specs;
+  const format_flag_spec *const flag_specs;
   /* Details of bad combinations of flags.  */
-  const format_flag_pair *bad_flag_pairs;
+  const format_flag_pair *const bad_flag_pairs;
   /* Flags applicable to this kind of format.  */
-  int flags;
+  const int flags;
   /* Flag character to treat a width as, or 0 if width not used.  */
-  int width_char;
+  const int width_char;
   /* Flag character to treat a left precision (strfmon) as,
      or 0 if left precision not used.  */
-  int left_precision_char;
+  const int left_precision_char;
   /* Flag character to treat a precision (for strfmon, right precision) as,
      or 0 if precision not used.  */
-  int precision_char;
+  const int precision_char;
   /* If a flag character has the effect of suppressing the conversion of
      an argument ('*' in scanf), that flag character, otherwise 0.  */
-  int suppression_char;
+  const int suppression_char;
   /* Flag character to treat a length modifier as (ignored if length
      modifiers not used).  Need not be placed in flag_chars for conversion
      specifiers, but is used to check for bad combinations such as length
      modifier with assignment suppression in scanf.  */
-  int length_code_char;
+  const int length_code_char;
   /* Pointer to type of argument expected if '*' is used for a width,
      or NULL if '*' not used for widths.  */
-  tree *width_type;
+  tree *const width_type;
   /* Pointer to type of argument expected if '*' is used for a precision,
      or NULL if '*' not used for precisions.  */
-  tree *precision_type;
+  tree *const precision_type;
 } format_kind_info;
 
 
index 8e6582f..bbe8dc7 100644 (file)
@@ -685,10 +685,10 @@ utf8_extend_token (c)
 #if 0
 struct try_type
 {
-  tree *node_var;
-  char unsigned_flag;
-  char long_flag;
-  char long_long_flag;
+  tree *const node_var;
+  const char unsigned_flag;
+  const char long_flag;
+  const char long_long_flag;
 };
 
 struct try_type type_sequence[] =
index dc3b7f8..7b5078c 100644 (file)
@@ -557,7 +557,8 @@ static int
 is_ctor_dtor (s)
      const char *s;
 {
-  struct names { const char *const name; int len; int ret; int two_underscores; };
+  struct names { const char *const name; const int len; const int ret;
+    const int two_underscores; };
 
   register struct names *p;
   register int ch;
index 4439368..1b59954 100644 (file)
@@ -221,10 +221,10 @@ void
 override_options ()
 {
   int i;
-  static struct cpu_table {
-    const char *name;
-    enum processor_type processor;
-    int flags;
+  static const struct cpu_table {
+    const char *const name;
+    const enum processor_type processor;
+    const int flags;
   } cpu_table[] = {
 #define EV5_MASK (MASK_CPU_EV5)
 #define EV6_MASK (MASK_CPU_EV6|MASK_BWX|MASK_MAX|MASK_FIX)
@@ -2985,8 +2985,8 @@ alpha_lookup_xfloating_lib_func (code)
 {
   struct xfloating_op
     {
-      enum rtx_code code;
-      const char *func;
+      const enum rtx_code code;
+      const char *const func;
     };
 
   static const struct xfloating_op vms_xfloating_ops[] = 
index 6875a6f..49b0f16 100644 (file)
@@ -1299,7 +1299,7 @@ arc_output_function_epilogue (file, size)
 
       /* Emit the return instruction.  */
       {
-       static int regs[4] = {
+       static const int regs[4] = {
          0, RETURN_ADDR_REGNUM, ILINK1_REGNUM, ILINK2_REGNUM
        };
        fprintf (file, "\tj.d %s\n", reg_names[regs[fn_type]]);
index fcd90dd..3e2192b 100644 (file)
@@ -286,13 +286,13 @@ static const char *const arm_condition_codes[] =
 
 struct processors
 {
-  const char * name;
-  unsigned int flags;
+  const char *const name;
+  const unsigned int flags;
 };
 
 /* Not all of these give usefully different compilation alternatives,
    but there is no simple way of generalizing them.  */
-static struct processors all_cores[] =
+static const struct processors all_cores[] =
 {
   /* ARM Cores */
   
@@ -345,7 +345,7 @@ static struct processors all_cores[] =
   {NULL, 0}
 };
 
-static struct processors all_architectures[] =
+static const struct processors all_architectures[] =
 {
   /* ARM Architectures */
   
@@ -436,12 +436,12 @@ arm_override_options ()
   /* If the user did not specify a processor, choose one for them.  */
   if (insn_flags == 0)
     {
-      struct processors * sel;
+      const struct processors * sel;
       unsigned int        sought;
-      static struct cpu_default
+      static const struct cpu_default
       {
-       int          cpu;
-       const char * name;
+       const int cpu;
+       const char *const name;
       }
       cpu_defaults[] =
       {
@@ -460,7 +460,7 @@ arm_override_options ()
        { TARGET_CPU_generic,   "arm" },
        { 0, 0 }
       };
-      struct cpu_default * def;
+      const struct cpu_default * def;
          
       /* Find the default.  */
       for (def = cpu_defaults; def->name; def++)
@@ -513,7 +513,7 @@ arm_override_options ()
          if (sel->name == NULL)
            {
              unsigned int        current_bit_count = 0;
-             struct processors * best_fit = NULL;
+             const struct processors * best_fit = NULL;
              
              /* Ideally we would like to issue an error message here
                 saying that it was not possible to find a CPU compatible
@@ -760,12 +760,12 @@ arm_add_gc_roots ()
 
 typedef struct
 {
-  const char *         arg;
-  unsigned long        return_value;
+  const char *const arg;
+  const unsigned long return_value;
 }
 isr_attribute_arg;
 
-static isr_attribute_arg isr_attribute_args [] =
+static const isr_attribute_arg isr_attribute_args [] =
 {
   { "IRQ",   ARM_FT_ISR },
   { "irq",   ARM_FT_ISR },
@@ -789,7 +789,7 @@ static unsigned long
 arm_isr_value (argument)
      tree argument;
 {
-  isr_attribute_arg * ptr;
+  const isr_attribute_arg * ptr;
   const char *        arg;
 
   /* No argument - default to IRQ.  */
index ed54cbb..b576773 100644 (file)
@@ -120,8 +120,8 @@ enum avr_arch {
 };
 
 struct mcu_type_s {
-  const char *name;
-  enum avr_arch arch;
+  const char *const name;
+  const enum avr_arch arch;
 };
 
 /* List of all known AVR MCU types - if updated, it has to be kept
@@ -242,7 +242,7 @@ avr_init_once ()
 
 /*  return register class from register number */
 
-static int reg_class_tab[]={
+static const int reg_class_tab[]={
   GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,
   GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,
   GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,
@@ -4831,7 +4831,7 @@ void
 order_regs_for_local_alloc ()
 {
   unsigned int i;
-  int order_0[] = {
+  static const int order_0[] = {
     24,25,
     18,19,
     20,21,
@@ -4843,7 +4843,7 @@ order_regs_for_local_alloc ()
     0,1,
     32,33,34,35
   };
-  int order_1[] = {
+  static const int order_1[] = {
     18,19,
     20,21,
     22,23,
@@ -4855,7 +4855,7 @@ order_regs_for_local_alloc ()
     0,1,
     32,33,34,35
   };
-  int order_2[] = {
+  static const int order_2[] = {
     25,24,
     23,22,
     21,20,
@@ -4869,9 +4869,9 @@ order_regs_for_local_alloc ()
     32,33,34,35
   };
   
-  int *order = (TARGET_ORDER_1 ? order_1 :
-               TARGET_ORDER_2 ? order_2 :
-               order_0);
+  const int *order = (TARGET_ORDER_1 ? order_1 :
+                     TARGET_ORDER_2 ? order_2 :
+                     order_0);
   for (i=0; i < ARRAY_SIZE (order_0); ++i)
       reg_alloc_order[i] = order[i];
 }
index 7ed86b2..b59d344 100644 (file)
@@ -503,7 +503,7 @@ c4x_hard_regno_rename_ok (regno1, regno2)
    Don't use R0 to pass arguments in, we use 0 to indicate a stack
    argument.  */
 
-static int c4x_int_reglist[3][6] =
+static const int c4x_int_reglist[3][6] =
 {
   {AR2_REGNO, R2_REGNO, R3_REGNO, RC_REGNO, RS_REGNO, RE_REGNO},
   {AR2_REGNO, R3_REGNO, RC_REGNO, RS_REGNO, RE_REGNO, 0},
index 2af7b26..a5d8745 100644 (file)
@@ -247,7 +247,7 @@ override_options ()
 
 #if 0
       {
-       static char *names[] = REG_CLASS_NAMES;
+       static const char *const names[] = REG_CLASS_NAMES;
        fprintf (stderr, "Register %s class is %s, can hold modes", reg_names[regno], names[class]);
        for (mode1 = VOIDmode;
             (int)mode1 < NUM_MACHINE_MODES;
index 34686a6..a0ed2b2 100644 (file)
@@ -2006,8 +2006,8 @@ enum shift_mode
 
 struct shift_insn
 {
-  const char *assembler;
-  int cc_valid;
+  const char *const assembler;
+  const int cc_valid;
 };
 
 /* Assembler instruction shift table.
index d88c853..933459a 100644 (file)
@@ -48,6 +48,7 @@ Boston, MA 02111-1307, USA.  */
 #endif
 
 /* Processor costs (relative to an add) */
+static const 
 struct processor_costs size_cost = {   /* costs for tunning for size */
   2,                                   /* cost of an add instruction */
   3,                                   /* cost of a lea instruction */
@@ -80,6 +81,7 @@ struct processor_costs size_cost = {  /* costs for tunning for size */
   3,                                   /* MMX or SSE register to integer */
 };
 /* Processor costs (relative to an add) */
+static const 
 struct processor_costs i386_cost = {   /* 386 specific costs */
   1,                                   /* cost of an add instruction */
   1,                                   /* cost of a lea instruction */
@@ -112,6 +114,7 @@ struct processor_costs i386_cost = {        /* 386 specific costs */
   3,                                   /* MMX or SSE register to integer */
 };
 
+static const 
 struct processor_costs i486_cost = {   /* 486 specific costs */
   1,                                   /* cost of an add instruction */
   1,                                   /* cost of a lea instruction */
@@ -144,6 +147,7 @@ struct processor_costs i486_cost = {        /* 486 specific costs */
   3                                    /* MMX or SSE register to integer */
 };
 
+static const 
 struct processor_costs pentium_cost = {
   1,                                   /* cost of an add instruction */
   1,                                   /* cost of a lea instruction */
@@ -176,6 +180,7 @@ struct processor_costs pentium_cost = {
   3                                    /* MMX or SSE register to integer */
 };
 
+static const 
 struct processor_costs pentiumpro_cost = {
   1,                                   /* cost of an add instruction */
   1,                                   /* cost of a lea instruction */
@@ -208,6 +213,7 @@ struct processor_costs pentiumpro_cost = {
   3                                    /* MMX or SSE register to integer */
 };
 
+static const 
 struct processor_costs k6_cost = {
   1,                                   /* cost of an add instruction */
   2,                                   /* cost of a lea instruction */
@@ -240,6 +246,7 @@ struct processor_costs k6_cost = {
   6                                    /* MMX or SSE register to integer */
 };
 
+static const 
 struct processor_costs athlon_cost = {
   1,                                   /* cost of an add instruction */
   2,                                   /* cost of a lea instruction */
@@ -272,6 +279,7 @@ struct processor_costs athlon_cost = {
   6                                    /* MMX or SSE register to integer */
 };
 
+static const 
 struct processor_costs pentium4_cost = {
   1,                                   /* cost of an add instruction */
   1,                                   /* cost of a lea instruction */
@@ -304,7 +312,7 @@ struct processor_costs pentium4_cost = {
   10,                                  /* MMX or SSE register to integer */
 };
 
-struct processor_costs *ix86_cost = &pentium_cost;
+const struct processor_costs *ix86_cost = &pentium_cost;
 
 /* Processor feature/optimization bitmasks.  */
 #define m_386 (1<<PROCESSOR_I386)
@@ -641,10 +649,10 @@ struct ix86_address
 static int ix86_decompose_address PARAMS ((rtx, struct ix86_address *));
 
 struct builtin_description;
-static rtx ix86_expand_sse_comi PARAMS ((struct builtin_description *, tree,
-                                        rtx));
-static rtx ix86_expand_sse_compare PARAMS ((struct builtin_description *, tree,
-                                           rtx));
+static rtx ix86_expand_sse_comi PARAMS ((const struct builtin_description *,
+                                        tree, rtx));
+static rtx ix86_expand_sse_compare PARAMS ((const struct builtin_description *,
+                                           tree, rtx));
 static rtx ix86_expand_unop1_builtin PARAMS ((enum insn_code, tree, rtx));
 static rtx ix86_expand_unop_builtin PARAMS ((enum insn_code, tree, rtx, int));
 static rtx ix86_expand_binop_builtin PARAMS ((enum insn_code, tree, rtx));
@@ -770,13 +778,13 @@ override_options ()
 
   static struct ptt
     {
-      struct processor_costs *cost;    /* Processor costs */
-      int target_enable;               /* Target flags to enable.  */
-      int target_disable;              /* Target flags to disable.  */
-      int align_loop;                  /* Default alignments.  */
-      int align_jump;
-      int align_func;
-      int branch_cost;
+      const struct processor_costs *cost;      /* Processor costs */
+      const int target_enable;                 /* Target flags to enable.  */
+      const int target_disable;                        /* Target flags to disable.  */
+      const int align_loop;                    /* Default alignments.  */
+      const int align_jump;
+      const int align_func;
+      const int branch_cost;
     }
   const processor_target_table[PROCESSOR_max] =
     {
@@ -791,8 +799,8 @@ override_options ()
 
   static struct pta
     {
-      const char *name;                /* processor name or nickname.  */
-      enum processor_type processor;
+      const char *const name;          /* processor name or nickname.  */
+      const enum processor_type processor;
     }
   const processor_alias_table[] =
     {
@@ -10708,15 +10716,15 @@ do {                                                                  \
 
 struct builtin_description
 {
-  unsigned int mask;
-  enum insn_code icode;
-  const char * name;
-  enum ix86_builtins code;
-  enum rtx_code comparison;
-  unsigned int flag;
+  const unsigned int mask;
+  const enum insn_code icode;
+  const char *const name;
+  const enum ix86_builtins code;
+  const enum rtx_code comparison;
+  const unsigned int flag;
 };
 
-static struct builtin_description bdesc_comi[] =
+static const struct builtin_description bdesc_comi[] =
 {
   { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comieq", IX86_BUILTIN_COMIEQSS, EQ, 0 },
   { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comilt", IX86_BUILTIN_COMILTSS, LT, 0 },
@@ -10732,7 +10740,7 @@ static struct builtin_description bdesc_comi[] =
   { MASK_SSE, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomineq", IX86_BUILTIN_UCOMINEQSS, NE, 0 }
 };
 
-static struct builtin_description bdesc_2arg[] =
+static const struct builtin_description bdesc_2arg[] =
 {
   /* SSE */
   { MASK_SSE, CODE_FOR_addv4sf3, "__builtin_ia32_addps", IX86_BUILTIN_ADDPS, 0, 0 },
@@ -10865,7 +10873,7 @@ static struct builtin_description bdesc_2arg[] =
 
 };
 
-static struct builtin_description bdesc_1arg[] =
+static const struct builtin_description bdesc_1arg[] =
 {
   { MASK_SSE | MASK_3DNOW_A, CODE_FOR_mmx_pmovmskb, 0, IX86_BUILTIN_PMOVMSKB, 0, 0 },
   { MASK_SSE, CODE_FOR_sse_movmskps, 0, IX86_BUILTIN_MOVMSKPS, 0, 0 },
@@ -10894,7 +10902,7 @@ ix86_init_builtins ()
 void
 ix86_init_mmx_sse_builtins ()
 {
-  struct builtin_description * d;
+  const struct builtin_description * d;
   size_t i;
   tree endlink = void_list_node;
 
@@ -11472,7 +11480,7 @@ ix86_expand_unop1_builtin (icode, arglist, target)
 
 static rtx
 ix86_expand_sse_compare (d, arglist, target)
-     struct builtin_description *d;
+     const struct builtin_description *d;
      tree arglist;
      rtx target;
 {
@@ -11524,7 +11532,7 @@ ix86_expand_sse_compare (d, arglist, target)
 
 static rtx
 ix86_expand_sse_comi (d, arglist, target)
-     struct builtin_description *d;
+     const struct builtin_description *d;
      tree arglist;
      rtx target;
 {
@@ -11585,7 +11593,7 @@ ix86_expand_builtin (exp, target, subtarget, mode, ignore)
      enum machine_mode mode ATTRIBUTE_UNUSED;
      int ignore ATTRIBUTE_UNUSED;
 {
-  struct builtin_description *d;
+  const struct builtin_description *d;
   size_t i;
   enum insn_code icode;
   tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
index 174c594..0bf603a 100644 (file)
@@ -51,42 +51,42 @@ Boston, MA 02111-1307, USA. */
 /* Define the specific costs for a given cpu */
 
 struct processor_costs {
-  int add;                     /* cost of an add instruction */
-  int lea;                     /* cost of a lea instruction */
-  int shift_var;               /* variable shift costs */
-  int shift_const;             /* constant shift costs */
-  int mult_init;               /* cost of starting a multiply */
-  int mult_bit;                        /* cost of multiply per each bit set */
-  int divide;                  /* cost of a divide/mod */
-  int large_insn;              /* insns larger than this cost more */
-  int move_ratio;              /* The threshold of number of scalar
+  const int add;               /* cost of an add instruction */
+  const int lea;               /* cost of a lea instruction */
+  const int shift_var;         /* variable shift costs */
+  const int shift_const;       /* constant shift costs */
+  const int mult_init;         /* cost of starting a multiply */
+  const int mult_bit;          /* cost of multiply per each bit set */
+  const int divide;            /* cost of a divide/mod */
+  const int large_insn;                /* insns larger than this cost more */
+  const int move_ratio;                /* The threshold of number of scalar
                                   memory-to-memory move insns.  */
-  int movzbl_load;             /* cost of loading using movzbl */
-  int int_load[3];             /* cost of loading integer registers
+  const int movzbl_load;       /* cost of loading using movzbl */
+  const int int_load[3];       /* cost of loading integer registers
                                   in QImode, HImode and SImode relative
                                   to reg-reg move (2).  */
-  int int_store[3];            /* cost of storing integer register
+  const int int_store[3];      /* cost of storing integer register
                                   in QImode, HImode and SImode */
-  int fp_move;                 /* cost of reg,reg fld/fst */
-  int fp_load[3];              /* cost of loading FP register
+  const int fp_move;           /* cost of reg,reg fld/fst */
+  const int fp_load[3];                /* cost of loading FP register
                                   in SFmode, DFmode and XFmode */
-  int fp_store[3];             /* cost of storing FP register
+  const int fp_store[3];       /* cost of storing FP register
                                   in SFmode, DFmode and XFmode */
-  int mmx_move;                        /* cost of moving MMX register.  */
-  int mmx_load[2];             /* cost of loading MMX register
+  const int mmx_move;          /* cost of moving MMX register.  */
+  const int mmx_load[2];       /* cost of loading MMX register
                                   in SImode and DImode */
-  int mmx_store[2];            /* cost of storing MMX register
+  const int mmx_store[2];      /* cost of storing MMX register
                                   in SImode and DImode */
-  int sse_move;                        /* cost of moving SSE register.  */
-  int sse_load[3];             /* cost of loading SSE register
+  const int sse_move;          /* cost of moving SSE register.  */
+  const int sse_load[3];       /* cost of loading SSE register
                                   in SImode, DImode and TImode*/
-  int sse_store[3];            /* cost of storing SSE register
+  const int sse_store[3];      /* cost of storing SSE register
                                   in SImode, DImode and TImode*/
-  int mmxsse_to_integer;       /* cost of moving mmxsse register to
+  const int mmxsse_to_integer; /* cost of moving mmxsse register to
                                   integer and vice versa.  */
 };
 
-extern struct processor_costs *ix86_cost;
+extern const struct processor_costs *ix86_cost;
 
 /* Run-time compilation parameters selecting different hardware subsets.  */
 
index 494de47..fa0179a 100644 (file)
@@ -128,10 +128,10 @@ rtx m68hc11_compare_op0;
 rtx m68hc11_compare_op1;
 \f
 
-struct processor_costs *m68hc11_cost;
+const struct processor_costs *m68hc11_cost;
 
 /* Costs for a 68HC11.  */
-struct processor_costs m6811_cost = {
+static const struct processor_costs m6811_cost = {
   /* add */
   COSTS_N_INSNS (2),
   /* logical */
@@ -166,7 +166,7 @@ struct processor_costs m6811_cost = {
 };
 
 /* Costs for a 68HC12.  */
-struct processor_costs m6812_cost = {
+static const struct processor_costs m6812_cost = {
   /* add */
   COSTS_N_INSNS (1),
   /* logical */
index 3ec7159..07e640b 100644 (file)
@@ -212,21 +212,21 @@ extern const char *m68hc11_soft_reg_count;
 \f
 /* Define cost parameters for a given processor variant.  */
 struct processor_costs {
-  int add;             /* cost of an add instruction */
-  int logical;          /* cost of a logical instruction */
-  int shift_var;
-  int shiftQI_const[8];
-  int shiftHI_const[16];
-  int multQI;
-  int multHI;
-  int multSI;
-  int divQI;
-  int divHI;
-  int divSI;
+  const int add;               /* cost of an add instruction */
+  const int logical;          /* cost of a logical instruction */
+  const int shift_var;
+  const int shiftQI_const[8];
+  const int shiftHI_const[16];
+  const int multQI;
+  const int multHI;
+  const int multSI;
+  const int divQI;
+  const int divHI;
+  const int divSI;
 };
 
 /* Costs for the current processor.  */
-extern struct processor_costs *m68hc11_cost;
+extern const struct processor_costs *m68hc11_cost;
 \f
 
 /* target machine storage layout */
index 3a832ff..a83168a 100644 (file)
@@ -3049,7 +3049,7 @@ static const char *const strings_68881[7] = {
   "1e16"
   };
 
-int codes_68881[7] = {
+static const int codes_68881[7] = {
   0x0f,
   0x32,
   0x33,
@@ -3216,7 +3216,7 @@ static const char *const strings_FPA[38] = {
 };
 
 
-int codes_FPA[38] = {
+static const int codes_FPA[38] = {
 /* small rationals */
   0x200,
   0xe,
index 1de96f2..db5e069 100644 (file)
@@ -485,15 +485,15 @@ legitimize_address (pic, orig, reg, scratch)
 #define MOVSTR_SI_LIMIT_88110   72
 #define MOVSTR_DI_LIMIT_88110   72
 
-static enum machine_mode mode_from_align[] =
+static const enum machine_mode mode_from_align[] =
                              {VOIDmode, QImode, HImode, VOIDmode, SImode,
                               VOIDmode, VOIDmode, VOIDmode, DImode};
-static int max_from_align[] = {0, MOVSTR_QI, MOVSTR_HI, 0, MOVSTR_SI,
-                              0, 0, 0, MOVSTR_DI};
-static int all_from_align[] = {0, MOVSTR_QI, MOVSTR_ODD_HI, 0, MOVSTR_ODD_SI,
-                              0, 0, 0, MOVSTR_ODD_DI};
+static const int max_from_align[] = {0, MOVSTR_QI, MOVSTR_HI, 0, MOVSTR_SI,
+                                    0, 0, 0, MOVSTR_DI};
+static const int all_from_align[] = {0, MOVSTR_QI, MOVSTR_ODD_HI, 0,
+                                    MOVSTR_ODD_SI, 0, 0, 0, MOVSTR_ODD_DI};
 
-static int best_from_align[3][9] = {
+static const int best_from_align[3][9] = {
   {0, MOVSTR_QI_LIMIT_88100, MOVSTR_HI_LIMIT_88100, 0, MOVSTR_SI_LIMIT_88100,
    0, 0, 0, MOVSTR_DI_LIMIT_88100},
   {0, MOVSTR_QI_LIMIT_88110, MOVSTR_HI_LIMIT_88110, 0, MOVSTR_SI_LIMIT_88110,
@@ -1534,7 +1534,8 @@ output_option (file, sep, type, name, indent, pos, max)
   return pos + fprintf (file, "%s%s%s", sep, type, name);
 }
 
-static struct { const char *const name; int value; } m_options[] = TARGET_SWITCHES;
+static const struct { const char *const name; const int value; } m_options[] =
+TARGET_SWITCHES;
 
 static void
 output_options (file, f_options, f_len, W_options, W_len,
index 881acd8..abcc050 100644 (file)
@@ -690,8 +690,8 @@ extern int flag_pic;                                /* -fpic */
    write-over scoreboard delays between caller and callee.  */
 #define ORDER_REGS_FOR_LOCAL_ALLOC                             \
 {                                                              \
-  static int leaf[] = REG_LEAF_ALLOC_ORDER;                    \
-  static int nonleaf[] = REG_ALLOC_ORDER;                      \
+  static const int leaf[] = REG_LEAF_ALLOC_ORDER;              \
+  static const int nonleaf[] = REG_ALLOC_ORDER;                        \
                                                                \
   memcpy (reg_alloc_order, regs_ever_live[1] ? nonleaf : leaf, \
          FIRST_PSEUDO_REGISTER * sizeof (int));                \
index 0a4a2b5..7b83cd9 100644 (file)
@@ -1877,7 +1877,7 @@ mcore_store_multiple_operation (op, mode)
    known constants.  DEST and SRC are registers.  OFFSET is the known
    starting point for the output pattern.  */
 
-static enum machine_mode mode_from_align[] =
+static const enum machine_mode mode_from_align[] =
 {
   VOIDmode, QImode, HImode, VOIDmode, SImode,
   VOIDmode, VOIDmode, VOIDmode, DImode
index e07ce46..cc94020 100644 (file)
@@ -197,8 +197,9 @@ do {                                                                         \
 #define UNIQUE_SECTION(DECL,RELOC)                                        \
 do {                                                                      \
   int len, size, sec;                                                     \
-  char *name, *string, *prefix;                                                   \
-  static char *prefixes[4][2] = {                                         \
+  const char *name, *prefix;                                              \
+  char *string;                                                                   \
+  static const char *const prefixes[4][2] = {                             \
     { ".text.", ".gnu.linkonce.t." },                                     \
     { ".rodata.", ".gnu.linkonce.r." },                                           \
     { ".data.", ".gnu.linkonce.d." },                                     \
index 409af7d..addc0f7 100644 (file)
@@ -54,10 +54,10 @@ Boston, MA 02111-1307, USA.  */
     {                                                          \
       int len;                                                 \
       int sec;                                                 \
-      char *name;                                              \
+      const char *name;                                                \
       char *string;                                            \
-      char *prefix;                                            \
-      static char *prefixes[/*4*/3][2] =                       \
+      const char *prefix;                                      \
+      static const char *const prefixes[/*4*/3][2] =           \
       {                                                                \
        { ".text.",   ".gnu.linkonce.t." },                     \
        { ".rodata.", ".gnu.linkonce.r." },                     \
index d88b61d..9ff5be6 100644 (file)
@@ -345,7 +345,7 @@ char mips_reg_names[][8] =
 /* Mips software names for the registers, used to overwrite the
    mips_reg_names array.  */
 
-char mips_sw_reg_names[][8] =
+static const char mips_sw_reg_names[][8] =
 {
   "$zero","$at",  "$v0",  "$v1",  "$a0",  "$a1",  "$a2",  "$a3",
   "$t0",  "$t1",  "$t2",  "$t3",  "$t4",  "$t5",  "$t6",  "$t7",
@@ -360,7 +360,7 @@ char mips_sw_reg_names[][8] =
 };
 
 /* Map hard register number to register class */
-enum reg_class mips_regno_to_class[] =
+const enum reg_class mips_regno_to_class[] =
 {
   GR_REGS,     GR_REGS,        M16_NA_REGS,    M16_NA_REGS,
   M16_REGS,    M16_REGS,       M16_REGS,       M16_REGS,
index dfb8aff..121628a 100644 (file)
@@ -1982,7 +1982,7 @@ enum reg_class
    choose a class which is "minimal", meaning that no smaller class
    also contains the register.  */
 
-extern enum reg_class mips_regno_to_class[];
+extern const enum reg_class mips_regno_to_class[];
 
 #define REGNO_REG_CLASS(REGNO) mips_regno_to_class[ (REGNO) ]
 
index a7e89c2..7d923c8 100644 (file)
@@ -1195,7 +1195,7 @@ print_operand_address (file, addr)
      register FILE *file;
      register rtx addr;
 {
-  static char scales[] = { 'b', 'w', 'd', 0, 'q', };
+  static const char scales[] = { 'b', 'w', 'd', 0, 'q', };
   rtx offset, base, indexexp, tmp;
   int scale;
   extern int flag_pic;
index dda9d97..fa23eaa 100644 (file)
@@ -4457,7 +4457,7 @@ enum millicodes { remI, remU, divI, divU, mulI, mulU, end1000 };
 static void import_milli                       PARAMS ((enum millicodes));
 static char imported[(int) end1000];
 static const char * const milli_names[] = {"remI", "remU", "divI", "divU", "mulI", "mulU"};
-static char import_string[] = ".IMPORT $$....,MILLICODE";
+static const char import_string[] = ".IMPORT $$....,MILLICODE";
 #define MILLI_START 10
 
 static void
@@ -4490,8 +4490,8 @@ output_mul_insn (unsignedp, insn)
 /* Emit the rtl for doing a division by a constant. */
 
 /* Do magic division millicodes exist for this value? */
-static int magic_milli[]= {0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0,
-                            1, 1};
+static const int magic_milli[]= {0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0,
+                                1, 1};
 
 /* We'll use an array to keep track of the magic millicodes and
    whether or not we've used them already. [n][0] is signed, [n][1] is
index 88420ba..9025619 100644 (file)
@@ -164,7 +164,7 @@ char rs6000_reg_names[][8] =
 };
 
 #ifdef TARGET_REGNAMES
-static char alt_reg_names[][8] =
+static const char alt_reg_names[][8] =
 {
    "%r0",   "%r1",  "%r2",  "%r3",  "%r4",  "%r5",  "%r6",  "%r7",
    "%r8",   "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15",
@@ -227,11 +227,11 @@ rs6000_override_options (default_cpu)
 
   static struct ptt
     {
-      const char *name;                /* Canonical processor name.  */
-      enum processor_type processor; /* Processor type enum value.  */
-      int target_enable;       /* Target flags to enable.  */
-      int target_disable;      /* Target flags to disable.  */
-    } processor_target_table[]
+      const char *const name;          /* Canonical processor name.  */
+      const enum processor_type processor; /* Processor type enum value.  */
+      const int target_enable; /* Target flags to enable.  */
+      const int target_disable;        /* Target flags to disable.  */
+    } const processor_target_table[]
       = {{"common", PROCESSOR_COMMON, MASK_NEW_MNEMONICS,
            POWER_MASKS | POWERPC_MASKS},
         {"power", PROCESSOR_POWER,
index 27cd5b3..1af8c5f 100644 (file)
@@ -87,7 +87,7 @@ static rtx leaf_label;
    registers.  FRAME_POINTER_REGNUM cannot be remapped by
    this function to eliminate it.  You must use -fomit-frame-pointer
    to get that.  */
-char leaf_reg_remap[] =
+const char leaf_reg_remap[] =
 { 0, 1, 2, 3, 4, 5, 6, 7,
   -1, -1, -1, -1, -1, -1, 14, -1,
   -1, -1, -1, -1, -1, -1, -1, -1,
@@ -226,9 +226,9 @@ void
 sparc_override_options ()
 {
   static struct code_model {
-    const char *name;
-    int value;
-  } cmodels[] = {
+    const char *const name;
+    const int value;
+  } const cmodels[] = {
     { "32", CM_32 },
     { "medlow", CM_MEDLOW },
     { "medmid", CM_MEDMID },
@@ -236,12 +236,12 @@ sparc_override_options ()
     { "embmedany", CM_EMBMEDANY },
     { 0, 0 }
   };
-  struct code_model *cmodel;
+  const struct code_model *cmodel;
   /* Map TARGET_CPU_DEFAULT to value for -m{arch,tune}=.  */
   static struct cpu_default {
-    int cpu;
-    const char *name;
-  } cpu_default[] = {
+    const int cpu;
+    const char *const name;
+  } const cpu_default[] = {
     /* There must be one entry here for each TARGET_CPU value.  */
     { TARGET_CPU_sparc, "cypress" },
     { TARGET_CPU_sparclet, "tsc701" },
@@ -254,14 +254,14 @@ sparc_override_options ()
     { TARGET_CPU_ultrasparc, "ultrasparc" },
     { 0, 0 }
   };
-  struct cpu_default *def;
+  const struct cpu_default *def;
   /* Table of values for -m{cpu,tune}=.  */
   static struct cpu_table {
-    const char *name;
-    enum processor_type processor;
-    int disable;
-    int enable;
-  } cpu_table[] = {
+    const char *const name;
+    const enum processor_type processor;
+    const int disable;
+    const int enable;
+  } const cpu_table[] = {
     { "v7",         PROCESSOR_V7, MASK_ISA, 0 },
     { "cypress",    PROCESSOR_CYPRESS, MASK_ISA, 0 },
     { "v8",         PROCESSOR_V8, MASK_ISA, MASK_V8 },
@@ -286,8 +286,8 @@ sparc_override_options ()
                                                    |MASK_DEPRECATED_V8_INSNS},
     { 0, 0, 0, 0 }
   };
-  struct cpu_table *cpu;
-  struct sparc_cpu_select *sel;
+  const struct cpu_table *cpu;
+  const struct sparc_cpu_select *sel;
   int fpu;
   
 #ifndef SPARC_BI_ARCH
@@ -5564,13 +5564,13 @@ output_return (operands)
 \f
 /* Leaf functions and non-leaf functions have different needs.  */
 
-static int
+static const int
 reg_leaf_alloc_order[] = REG_LEAF_ALLOC_ORDER;
 
-static int
+static const int
 reg_nonleaf_alloc_order[] = REG_ALLOC_ORDER;
 
-static int *reg_alloc_orders[] = {
+static const int *const reg_alloc_orders[] = {
   reg_leaf_alloc_order,
   reg_nonleaf_alloc_order};
 
@@ -5583,7 +5583,7 @@ order_regs_for_local_alloc ()
     {
       last_order_nonleaf = !last_order_nonleaf;
       memcpy ((char *) reg_alloc_order,
-             (char *) reg_alloc_orders[last_order_nonleaf],
+             (const char *) reg_alloc_orders[last_order_nonleaf],
              FIRST_PSEUDO_REGISTER * sizeof (int));
     }
 }
index 9835881..bf43ba9 100644 (file)
@@ -721,9 +721,9 @@ extern enum processor_type sparc_cpu;
 struct sparc_cpu_select
 {
   const char *string;
-  const char *name;
-  int set_tune_p;
-  int set_arch_p;
+  const char *const name;
+  const int set_tune_p;
+  const int set_arch_p;
 };
 
 extern struct sparc_cpu_select sparc_select[];
@@ -1433,7 +1433,7 @@ extern enum reg_class sparc_regno_reg_class[];
 extern char sparc_leaf_regs[];
 #define LEAF_REGISTERS sparc_leaf_regs
 
-extern char leaf_reg_remap[];
+extern const char leaf_reg_remap[];
 #define LEAF_REG_REMAP(REGNO) (leaf_reg_remap[REGNO])
 
 /* The class value for index registers, and the one for base regs.  */
index 959f2ef..a7a008f 100644 (file)
@@ -1,3 +1,12 @@
+2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * class.c (build_vtable_entry_ref): Const-ify.
+       * decl.c (predefined_identifier,
+       initialize_predefined_identifiers): Likewise. 
+       * init.c (build_new_1): Likewise.
+       * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
+       Likewise.
+
 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
 
        * optimize.c (struct inline_data): Moved to ../tree-inline.c.
index ac71fc5..97a3597 100644 (file)
@@ -435,7 +435,7 @@ static void
 build_vtable_entry_ref (basetype, idx)
      tree basetype, idx;
 {
-  static char asm_stmt[] = ".vtable_entry %c0, %c1";
+  static const char asm_stmt[] = ".vtable_entry %c0, %c1";
   tree s, i, i2;
   tree vtable = get_vtbl_decl_for_binfo (TYPE_BINFO (basetype));
   tree first_fn = TYPE_BINFO_VTABLE (basetype);
index 0dfd8d6..60ccead 100644 (file)
@@ -6227,11 +6227,11 @@ record_unknown_type (type, name)
 typedef struct predefined_identifier
 {
   /* The name of the identifier.  */
-  const char *name;
+  const char *const name;
   /* The place where the IDENTIFIER_NODE should be stored.  */
-  tree *node;
+  tree *const node;
   /* Non-zero if this is the name of a constructor or destructor.  */
-  int ctor_or_dtor_p;
+  const int ctor_or_dtor_p;
 } predefined_identifier;
 
 /* Create all the predefined identifiers.  */
@@ -6239,10 +6239,10 @@ typedef struct predefined_identifier
 static void
 initialize_predefined_identifiers ()
 {
-  struct predefined_identifier *pid;
+  const predefined_identifier *pid;
 
   /* A table of identifiers to create at startup.  */
-  static predefined_identifier predefined_identifiers[] = {
+  static const predefined_identifier predefined_identifiers[] = {
     { "C++", &lang_name_cplusplus, 0 },
     { "C", &lang_name_c, 0 },
     { "Java", &lang_name_java, 0 },
index 487543e..8dad82d 100644 (file)
@@ -2355,7 +2355,7 @@ build_new_1 (exp)
       tree class_addr, alloc_decl;
       tree class_decl = build_java_class_ref (true_type);
       tree class_size = size_in_bytes (true_type);
-      static char alloc_name[] = "_Jv_AllocObject";
+      static const char alloc_name[] = "_Jv_AllocObject";
       use_java_new = 1;
       alloc_decl = IDENTIFIER_GLOBAL_VALUE (get_identifier (alloc_name));
       if (alloc_decl == NULL_TREE)
index 6d8fcb3..cb69142 100644 (file)
@@ -213,7 +213,7 @@ int interface_unknown;              /* whether or not we know this class
 
 #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE,
 
-static char cplus_tree_code_type[] = {
+static const char cplus_tree_code_type[] = {
   'x',
 #include "cp-tree.def"
 };
@@ -225,7 +225,7 @@ static char cplus_tree_code_type[] = {
 
 #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH,
 
-static int cplus_tree_code_length[] = {
+static const int cplus_tree_code_length[] = {
   0,
 #include "cp-tree.def"
 };
@@ -390,9 +390,9 @@ init_operators ()
 /* The reserved keyword table.  */
 struct resword
 {
-  const char *word;
-  ENUM_BITFIELD(rid) rid : 16;
-  unsigned int disable   : 16;
+  const char *const word;
+  const ENUM_BITFIELD(rid) rid : 16;
+  const unsigned int disable   : 16;
 };
 
 /* Disable mask.  Keywords are disabled if (reswords[i].disable & mask) is
index 8ee6a1f..cda691d 100644 (file)
@@ -96,11 +96,11 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 struct default_include
 {
-  const char *fname;           /* The name of the directory.  */
-  const char *component;       /* The component containing the directory
+  const char *const fname;     /* The name of the directory.  */
+  const char *const component; /* The component containing the directory
                                   (see update_path in prefix.c) */
-  int cplusplus;               /* Only look here if we're compiling C++.  */
-  int cxx_aware;               /* Includes in this directory don't need to
+  const int cplusplus;         /* Only look here if we're compiling C++.  */
+  const int cxx_aware;         /* Includes in this directory don't need to
                                   be wrapped in extern "C" when compiling
                                   C++.  */
 };
index e2ed7de..5a92351 100644 (file)
@@ -63,23 +63,23 @@ struct op
 
 struct suffix
 {
-  unsigned char s[4];
-  unsigned char u;
-  unsigned char l;
+  const unsigned char s[4];
+  const unsigned char u;
+  const unsigned char l;
 };
 
-const struct suffix vsuf_1[] = {
+static const struct suffix vsuf_1[] = {
   { "u", 1, 0 }, { "U", 1, 0 },
   { "l", 0, 1 }, { "L", 0, 1 }
 };
 
-const struct suffix vsuf_2[] = {
+static const struct suffix vsuf_2[] = {
   { "ul", 1, 1 }, { "UL", 1, 1 }, { "uL", 1, 1 }, { "Ul", 1, 1 },
   { "lu", 1, 1 }, { "LU", 1, 1 }, { "Lu", 1, 1 }, { "lU", 1, 1 },
   { "ll", 0, 2 }, { "LL", 0, 2 }
 };
 
-const struct suffix vsuf_3[] = {
+static const struct suffix vsuf_3[] = {
   { "ull", 1, 2 }, { "ULL", 1, 2 }, { "uLL", 1, 2 }, { "Ull", 1, 2 },
   { "llu", 1, 2 }, { "LLU", 1, 2 }, { "LLu", 1, 2 }, { "llU", 1, 2 }
 };
index 8c02b55..74288f3 100644 (file)
@@ -1,3 +1,16 @@
+Sun Oct  7 12:27:54 2001  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * bad.c (_ffebad_message_, ffebad_messages_): Const-ify.
+       * bld.c (ffebld_arity_op_): Likewise.
+       * bld.h (ffebld_arity_op_): Likewise.
+       * com.c (ffecom_init_0): Likewise.
+       * intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
+       _ffeintrin_imp_, names, gens, imps, specs, cc_pair,
+       cc_descriptions, cc_summaries): Likewise.
+       * intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
+       _ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_,
+       ffeintrin_imps_, ffeintrin_specs_): Likewise.
+
 2001-10-05  Toon Moene  <toon@moene.indiv.nluug.nl>
 
        * news.texi: Document libf2c being built as a shared library.
index 0ecaf74..aa0ae6a 100644 (file)
@@ -61,13 +61,13 @@ bool ffebad_is_inhibited_ = FALSE;
 
 struct _ffebad_message_
   {
-    ffebadSeverity severity;
-    const char *message;
+    const ffebadSeverity severity;
+    const char *const message;
   };
 
 /* Static objects accessed by functions in this module.         */
 
-static struct _ffebad_message_ ffebad_messages_[]
+static const struct _ffebad_message_ ffebad_messages_[]
 =
 {
 #define FFEBAD_MSGS1(KWD,SEV,MSG) { SEV, MSG },
index dd4c860..6d2247f 100644 (file)
@@ -46,7 +46,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 /* Externals defined here.  */
 
-ffebldArity ffebld_arity_op_[]
+const ffebldArity ffebld_arity_op_[]
 =
 {
 #define FFEBLD_OP(KWD,NAME,ARITY) ARITY,
index 3347b1c..bee0480 100644 (file)
@@ -480,7 +480,7 @@ struct _ffebld_pool_stack_
 
 /* Global objects accessed by users of this module. */
 
-extern ffebldArity ffebld_arity_op_[];
+extern const ffebldArity ffebld_arity_op_[];
 extern struct _ffebld_pool_stack_ ffebld_pool_stack_;
 
 /* Declare functions with prototypes. */
index 8d9ad8c..c086c48 100644 (file)
@@ -11386,16 +11386,16 @@ ffecom_init_0 ()
 
   if (ffe_is_do_internal_checks ())
     {
-      static char names[][12]
+      static const char names[][12]
        =
       {"bar", "bletch", "foo", "foobar"};
-      char *name;
+      const char *name;
       unsigned long ul;
       double fl;
 
       name = bsearch ("foo", &names[0], ARRAY_SIZE (names), sizeof (names[0]),
                      (int (*)(const void *, const void *)) strcmp);
-      if (name != (char *) &names[2])
+      if (name != &names[0][2])
        {
          assert ("bsearch doesn't work, #define FFEPROJ_BSEARCH 0 in proj.h"
                  == NULL);
index 63cfbad..4ce776b 100644 (file)
@@ -70,39 +70,39 @@ Usage: intdoc > intdoc.texi\n\
 
 struct _ffeintrin_name_
   {
-    const char *name_uc;
-    const char *name_lc;
-    const char *name_ic;
-    ffeintrinGen generic;
-    ffeintrinSpec specific;
+    const char *const name_uc;
+    const char *const name_lc;
+    const char *const name_ic;
+    const ffeintrinGen generic;
+    const ffeintrinSpec specific;
   };
 
 struct _ffeintrin_gen_
   {
-    const char *name;          /* Name as seen in program. */
-    ffeintrinSpec specs[2];
+    const char *const name;            /* Name as seen in program. */
+    const ffeintrinSpec specs[2];
   };
 
 struct _ffeintrin_spec_
   {
-    const char *name;          /* Uppercase name as seen in source code,
+    const char *const name;    /* Uppercase name as seen in source code,
                                   lowercase if no source name, "none" if no
                                   name at all (NONE case). */
-    bool is_actualarg;         /* Ok to pass as actual arg if -pedantic. */
-    ffeintrinFamily family;
-    ffeintrinImp implementation;
+    const bool is_actualarg;   /* Ok to pass as actual arg if -pedantic. */
+    const ffeintrinFamily family;
+    const ffeintrinImp implementation;
   };
 
 struct _ffeintrin_imp_
   {
-    const char *name;                  /* Name of implementation. */
+    const char *const name;            /* Name of implementation. */
 #if 0  /* FFECOM_targetCURRENT == FFECOM_targetGCC */
-    ffecomGfrt gfrt;           /* gfrt index in library. */
+    const ffecomGfrt gfrt;             /* gfrt index in library. */
 #endif /* FFECOM_targetCURRENT == FFECOM_targetGCC */
-    const char *control;
+    const char *const control;
   };
 
-static struct _ffeintrin_name_ names[] = {
+static const struct _ffeintrin_name_ names[] = {
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC) \
   { UPPER, LOWER, MIXED, FFEINTRIN_ ## GEN, FFEINTRIN_ ## SPEC },
 #define DEFGEN(CODE,NAME,SPEC1,SPEC2)
@@ -117,7 +117,7 @@ static struct _ffeintrin_name_ names[] = {
 #undef DEFIMPY
 };
 
-static struct _ffeintrin_gen_ gens[] = {
+static const struct _ffeintrin_gen_ gens[] = {
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC)
 #define DEFGEN(CODE,NAME,SPEC1,SPEC2) \
   { NAME, { SPEC1, SPEC2, }, },
@@ -132,7 +132,7 @@ static struct _ffeintrin_gen_ gens[] = {
 #undef DEFIMPY
 };
 
-static struct _ffeintrin_imp_ imps[] = {
+static const struct _ffeintrin_imp_ imps[] = {
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC)
 #define DEFGEN(CODE,NAME,SPEC1,SPEC2)
 #define DEFSPEC(CODE,NAME,CALLABLE,FAMILY,IMP)
@@ -157,7 +157,7 @@ static struct _ffeintrin_imp_ imps[] = {
 #undef DEFIMPY
 };
 
-static struct _ffeintrin_spec_ specs[] = {
+static const struct _ffeintrin_spec_ specs[] = {
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC)
 #define DEFGEN(CODE,NAME,SPEC1,SPEC2)
 #define DEFSPEC(CODE,NAME,CALLABLE,FAMILY,IMP) \
@@ -171,17 +171,17 @@ static struct _ffeintrin_spec_ specs[] = {
 #undef DEFIMPY
 };
 
-struct cc_pair { ffeintrinImp imp; const char *text; };
+struct cc_pair { const ffeintrinImp imp; const char *const text; };
 
 static const char *descriptions[FFEINTRIN_imp] = { 0 };
-static struct cc_pair cc_descriptions[] = {
+static const struct cc_pair cc_descriptions[] = {
 #define DEFDOC(IMP,SUMMARY,DESCRIPTION) { FFEINTRIN_imp ## IMP, DESCRIPTION },
 #include "intdoc.h0"
 #undef DEFDOC
 };
 
 static const char *summaries[FFEINTRIN_imp] = { 0 };
-static struct cc_pair cc_summaries[] = {
+static const struct cc_pair cc_summaries[] = {
 #define DEFDOC(IMP,SUMMARY,DESCRIPTION) { FFEINTRIN_imp ## IMP, SUMMARY },
 #include "intdoc.h0"
 #undef DEFDOC
index 31ebd96..add9902 100644 (file)
@@ -32,39 +32,39 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 struct _ffeintrin_name_
   {
-    const char *name_uc;
-    const char *name_lc;
-    const char *name_ic;
-    ffeintrinGen generic;
-    ffeintrinSpec specific;
+    const char *const name_uc;
+    const char *const name_lc;
+    const char *const name_ic;
+    const ffeintrinGen generic;
+    const ffeintrinSpec specific;
   };
 
 struct _ffeintrin_gen_
   {
-    const char *name;                  /* Name as seen in program. */
-    ffeintrinSpec specs[2];
+    const char *const name;                    /* Name as seen in program. */
+    const ffeintrinSpec specs[2];
   };
 
 struct _ffeintrin_spec_
   {
-    const char *name;          /* Uppercase name as seen in source code,
+    const char *const name;    /* Uppercase name as seen in source code,
                                   lowercase if no source name, "none" if no
                                   name at all (NONE case). */
-    bool is_actualarg;         /* Ok to pass as actual arg if -pedantic. */
-    ffeintrinFamily family;
-    ffeintrinImp implementation;
+    const bool is_actualarg;   /* Ok to pass as actual arg if -pedantic. */
+    const ffeintrinFamily family;
+    const ffeintrinImp implementation;
   };
 
 struct _ffeintrin_imp_
   {
-    const char *name;          /* Name of implementation. */
+    const char *const name;    /* Name of implementation. */
 #if FFECOM_targetCURRENT == FFECOM_targetGCC
-    ffecomGfrt gfrt_direct;    /* library routine, direct-callable form. */
-    ffecomGfrt gfrt_f2c;       /* library routine, f2c-callable form. */
-    ffecomGfrt gfrt_gnu;       /* library routine, gnu-callable form. */
+    const ffecomGfrt gfrt_direct;/* library routine, direct-callable form. */
+    const ffecomGfrt gfrt_f2c; /* library routine, f2c-callable form. */
+    const ffecomGfrt gfrt_gnu; /* library routine, gnu-callable form. */
 #endif /* FFECOM_targetCURRENT == FFECOM_targetGCC */
-    const char *control;
-    char y2kbad;
+    const char *const control;
+    const char y2kbad;
   };
 
 static ffebad ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
@@ -77,7 +77,7 @@ static ffebad ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
 static bool ffeintrin_check_any_ (ffebld arglist);
 static int ffeintrin_cmp_name_ (const void *name, const void *intrinsic);
 
-static struct _ffeintrin_name_ ffeintrin_names_[]
+static const struct _ffeintrin_name_ ffeintrin_names_[]
 =
 {                              /* Alpha order. */
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC) \
@@ -94,7 +94,7 @@ static struct _ffeintrin_name_ ffeintrin_names_[]
 #undef DEFIMPY
 };
 
-static struct _ffeintrin_gen_ ffeintrin_gens_[]
+static const struct _ffeintrin_gen_ ffeintrin_gens_[]
 =
 {
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC)
@@ -111,7 +111,7 @@ static struct _ffeintrin_gen_ ffeintrin_gens_[]
 #undef DEFIMPY
 };
 
-static struct _ffeintrin_imp_ ffeintrin_imps_[]
+static const struct _ffeintrin_imp_ ffeintrin_imps_[]
 =
 {
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC)
@@ -140,7 +140,7 @@ static struct _ffeintrin_imp_ ffeintrin_imps_[]
 #undef DEFIMPY
 };
 
-static struct _ffeintrin_spec_ ffeintrin_specs_[]
+static const struct _ffeintrin_spec_ ffeintrin_specs_[]
 =
 {
 #define DEFNAME(UPPER,LOWER,MIXED,GEN,SPEC)
index a0ea335..98b3e49 100644 (file)
@@ -417,7 +417,7 @@ life_analysis (f, file, flags)
 {
 #ifdef ELIMINABLE_REGS
   register int i;
-  static struct {int from, to; } eliminables[] = ELIMINABLE_REGS;
+  static const struct {const int from, to; } eliminables[] = ELIMINABLE_REGS;
 #endif
 
   /* Record which registers will be eliminated.  We use this in
index cabbe18..b740218 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -122,7 +122,7 @@ extern int getrusage PARAMS ((int, struct rusage *));
 #endif /* DIR_UP */
 #endif /* VMS */
 
-static char dir_separator_str[] = { DIR_SEPARATOR, 0 };
+static const char dir_separator_str[] = { DIR_SEPARATOR, 0 };
 
 #define obstack_chunk_alloc xmalloc
 #define obstack_chunk_free free
@@ -226,11 +226,11 @@ static const char *cross_compile = "0";
    switch.  The only case we support now is simply appending or deleting a
    string to or from the end of the first part of the configuration name.  */
 
-struct modify_target
+const struct modify_target
 {
-  const char *sw;
-  enum add_del {ADD, DELETE} add_del;
-  const char *str;
+  const char *const sw;
+  const enum add_del {ADD, DELETE} add_del;
+  const char *const str;
 }
 modify_target[] = MODIFY_TARGET_NAME;
 #endif
@@ -857,21 +857,21 @@ static char **preprocessor_options;
 struct option_map
 {
   /* The long option's name.  */
-  const char *name;
+  const char *const name;
   /* The equivalent short option.  */
-  const char *equivalent;
+  const char *const equivalent;
   /* Argument info.  A string of flag chars; NULL equals no options.
      a => argument required.
      o => argument optional.
      j => join argument to equivalent, making one word.
      * => require other text after NAME as an argument.  */
-  const char *arg_info;
+  const char *const arg_info;
 };
 
 /* This is the table of mappings.  Mappings are tried sequentially
    for each option encountered; the first one that matches, wins.  */
 
-struct option_map option_map[] =
+static const struct option_map option_map[] =
  {
    {"--all-warnings", "-Wall", 0},
    {"--ansi", "-ansi", 0},
@@ -954,9 +954,9 @@ struct option_map option_map[] =
 \f
 
 #ifdef TARGET_OPTION_TRANSLATE_TABLE
-static struct {
-  const char *option_found;
-  const char *replacements;
+static const struct {
+  const char *const option_found;
+  const char *const replacements;
 } target_option_translations[] =
 {
   TARGET_OPTION_TRANSLATE_TABLE,
@@ -1361,11 +1361,11 @@ static struct spec_list static_specs[] =
    That is all that the EXTRA_SPECS macro gives us.  */
 struct spec_list_1
 {
-  const char *name;
-  const char *ptr;
+  const char *const name;
+  const char *const ptr;
 };
 
-static struct spec_list_1 extra_specs_1[] = { EXTRA_SPECS };
+static const struct spec_list_1 extra_specs_1[] = { EXTRA_SPECS };
 static struct spec_list *extra_specs = (struct spec_list *) 0;
 #endif
 
@@ -1519,7 +1519,7 @@ init_spec ()
 #ifdef USE_AS_TRADITIONAL_FORMAT
   /* Prepend "--traditional-format" to whatever asm_spec we had before.  */
   {
-    static char tf[] = "--traditional-format ";
+    static const char tf[] = "--traditional-format ";
     obstack_grow (&obstack, tf, sizeof(tf) - 1);
     obstack_grow0 (&obstack, asm_spec, strlen (asm_spec));
     asm_spec = obstack_finish (&obstack);
index b88bf09..db51a8b 100644 (file)
@@ -79,7 +79,7 @@ typedef HOST_WIDEST_INT gcov_type;
 /* The functions in this file for creating and solution program flow graphs
    are very similar to functions in the gcc source file profile.c.  */
 
-char gcov_version_string[] = "GNU gcov version 1.5\n";
+static const char gcov_version_string[] = "GNU gcov version 1.5\n";
 
 /* This is the size of the buffer used to read in source file lines.  */
 
index cbb1175..be86ca6 100644 (file)
@@ -145,19 +145,19 @@ write_units (num_units, multiplicity, simultaneity,
   printf ("#define INSN_SCHEDULING\n\n");
   printf ("extern int result_ready_cost PARAMS ((rtx));\n");
   printf ("extern int function_units_used PARAMS ((rtx));\n\n");
-  printf ("extern struct function_unit_desc\n");
+  printf ("extern const struct function_unit_desc\n");
   printf ("{\n");
-  printf ("  const char *name;\n");
-  printf ("  int bitmask;\n");
-  printf ("  int multiplicity;\n");
-  printf ("  int simultaneity;\n");
-  printf ("  int default_cost;\n");
-  printf ("  int max_issue_delay;\n");
-  printf ("  int (*ready_cost_function) PARAMS ((rtx));\n");
-  printf ("  int (*conflict_cost_function) PARAMS ((rtx, rtx));\n");
-  printf ("  int max_blockage;\n");
-  printf ("  unsigned int (*blockage_range_function) PARAMS ((rtx));\n");
-  printf ("  int (*blockage_function) PARAMS ((rtx, rtx));\n");
+  printf ("  const char *const name;\n");
+  printf ("  const int bitmask;\n");
+  printf ("  const int multiplicity;\n");
+  printf ("  const int simultaneity;\n");
+  printf ("  const int default_cost;\n");
+  printf ("  const int max_issue_delay;\n");
+  printf ("  int (*const ready_cost_function) PARAMS ((rtx));\n");
+  printf ("  int (*const conflict_cost_function) PARAMS ((rtx, rtx));\n");
+  printf ("  const int max_blockage;\n");
+  printf ("  unsigned int (*const blockage_range_function) PARAMS ((rtx));\n");
+  printf ("  int (*const blockage_function) PARAMS ((rtx, rtx));\n");
   printf ("} function_units[];\n\n");
   printf ("#define FUNCTION_UNITS_SIZE %d\n", num_units);
   printf ("#define MIN_MULTIPLICITY %d\n", multiplicity->min);
index 071dd54..276d515 100644 (file)
@@ -2448,8 +2448,8 @@ make_length_attrs ()
   static const char *const new_names[] = {"*insn_default_length",
                                      "*insn_variable_length_p",
                                      "*insn_current_length"};
-  static rtx (*no_address_fn[]) PARAMS ((rtx)) = {identity_fn, zero_fn, zero_fn};
-  static rtx (*address_fn[]) PARAMS ((rtx)) = {max_fn, one_fn, identity_fn};
+  static rtx (*const no_address_fn[]) PARAMS ((rtx)) = {identity_fn, zero_fn, zero_fn};
+  static rtx (*const address_fn[]) PARAMS ((rtx)) = {max_fn, one_fn, identity_fn};
   size_t i;
   struct attr_desc *length_attr, *new_attr;
   struct attr_value *av, *new_av;
@@ -5657,7 +5657,7 @@ write_function_unit_info ()
      the function units.   The name is included for documentation purposes
      only.  */
 
-  printf ("struct function_unit_desc function_units[] = {\n");
+  printf ("const struct function_unit_desc function_units[] = {\n");
 
   /* Write out the descriptions in numeric order, but don't force that order
      on the list.  Doing so increases the runtime of genattrtab.c.  */
index da2b883..eb3e327 100644 (file)
@@ -95,12 +95,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 struct rtx_definition 
 {
-  const char *enumname, *name, *format;
+  const char *const enumname, *const name, *const format;
 };
 
 #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) { STRINGX(ENUM), NAME, FORMAT },
 
-struct rtx_definition defs[] = 
+const struct rtx_definition defs[] = 
 {  
 #include "rtl.def"             /* rtl expressions are documented here */
 };
index 12a1b51..f4ba1f9 100644 (file)
@@ -34,9 +34,9 @@ static void
 output_predicate_decls ()
 {
 #ifdef PREDICATE_CODES
-  static struct {
-    const char *name;
-    RTX_CODE codes[NUM_RTX_CODE];
+  static const struct {
+    const char *const name;
+    const RTX_CODE codes[NUM_RTX_CODE];
   } predicate[] = {
     PREDICATE_CODES
   };
index c453b1a..08ef3b4 100644 (file)
@@ -181,10 +181,10 @@ static int error_count;
    of tree nodes.  Also, if a predicate can match only one code, we can
    hardwire that code into the node testing the predicate.  */
 
-static struct pred_table
+static const struct pred_table
 {
-  const char *name;
-  RTX_CODE codes[NUM_RTX_CODE];
+  const char *const name;
+  const RTX_CODE codes[NUM_RTX_CODE];
 } preds[] = {
   {"general_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,
                       LABEL_REF, SUBREG, REG, MEM}},
index 8cc8729..f811f22 100644 (file)
@@ -326,7 +326,7 @@ global_alloc (file)
 {
   int retval;
 #ifdef ELIMINABLE_REGS
-  static struct {int from, to; } eliminables[] = ELIMINABLE_REGS;
+  static const struct {const int from, to; } eliminables[] = ELIMINABLE_REGS;
 #endif
   int need_fp
     = (! flag_omit_frame_pointer
index 71fdf92..5fbc60e 100644 (file)
@@ -1,3 +1,10 @@
+2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * jcf-io.c (format_uint): Const-ify.
+       * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
+       * lex.c (java_get_line_col): Likewise.
+       * parse.y (build_incdec): Likewise.
+
 2001-10-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
 
        * parse.y (patch_assignment): Use lvalue's original TYPE when
index a280976..ba56b18 100644 (file)
@@ -625,7 +625,7 @@ DEFUN(format_uint, (buffer, value, base),
   /* Note this code does not pretend to be optimized. */
   do {
     int digit = value % base;
-    static char digit_chars[] = "0123456789abcdefghijklmnopqrstuvwxyz";
+    static const char digit_chars[] = "0123456789abcdefghijklmnopqrstuvwxyz";
     *--buf_ptr = digit_chars[digit];
     value /= base;
   } while (value != 0);
index 482d89b..7fa23a9 100644 (file)
@@ -67,7 +67,7 @@ static int process_option_with_no PARAMS ((char *,
 
 #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE,
 
-char java_tree_code_type[] = {
+static const char java_tree_code_type[] = {
   'x',
 #include "java-tree.def"
 };
@@ -79,7 +79,7 @@ char java_tree_code_type[] = {
 
 #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH,
 
-int java_tree_code_length[] = {
+static const int java_tree_code_length[] = {
   0,
 #include "java-tree.def"
 };
index 926827a..c2c4634 100644 (file)
@@ -1751,7 +1751,7 @@ java_get_line_col (filename, line, col)
       c = getc (fp);
       if (c == EOF)
        {
-         static char msg[] = "<<file too short - unexpected EOF>>";
+         static const char msg[] = "<<file too short - unexpected EOF>>";
          obstack_grow (&temporary_obstack, msg, sizeof(msg)-1);
          goto have_line;
        }
index 6fa3054..2737579 100644 (file)
@@ -14147,7 +14147,7 @@ build_incdec (op_token, op_location, op1, is_post_p)
      tree op1;
      int is_post_p;
 {
-  static enum tree_code lookup [2][2] = 
+  static const enum tree_code lookup [2][2] = 
     {
       { PREDECREMENT_EXPR, PREINCREMENT_EXPR, },
       { POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, },
index 95cc8fb..62572b8 100644 (file)
--- a/gcc/lcm.c
+++ b/gcc/lcm.c
@@ -1016,7 +1016,7 @@ optimize_mode_switching (file)
   int need_commit = 0;
   sbitmap *kill;
   struct edge_list *edge_list;
-  static int num_modes[] = NUM_MODES_FOR_MODE_SWITCHING;
+  static const int num_modes[] = NUM_MODES_FOR_MODE_SWITCHING;
 #define N_ENTITIES (sizeof num_modes / sizeof (int))
   int entity_map[N_ENTITIES];
   struct bb_info *bb_info[N_ENTITIES];
index e0e8d81..6bc0175 100644 (file)
@@ -2152,7 +2152,7 @@ find_free_reg (class, mode, qtyno, accept_call_clobbered, just_try_suggested,
 #endif
     HARD_REG_SET used, first_used;
 #ifdef ELIMINABLE_REGS
-  static struct {int from, to; } eliminables[] = ELIMINABLE_REGS;
+  static const struct {const int from, to; } eliminables[] = ELIMINABLE_REGS;
 #endif
 
   /* Validate our parameters.  */
index 3145518..2d2619f 100644 (file)
@@ -45,11 +45,11 @@ typedef struct param_info
 {
   /* The name used with the `--param <name>=<value>' switch to set this
      value.  */
-  const char *option;
+  const char *const option;
   /* The associated value.  */
   int value;
   /* A short description of the option.  */
-   const char *help;
+  const char *const help;
 } param_info;
 
 /* An array containing the compiler parameters and their current
index e15df72..4c32ac0 100644 (file)
@@ -69,10 +69,10 @@ static void counts_to_freqs          PARAMS ((void));
    Filled using information from predict.def.  */
 struct predictor_info
 {
-  const char *name;    /* Name used in the debugging dumps.  */
-  int hitrate;         /* Expected hitrate used by
-                          predict_insn_def call.  */
-  int flags;
+  const char *const name;      /* Name used in the debugging dumps.  */
+  const int hitrate;           /* Expected hitrate used by
+                                  predict_insn_def call.  */
+  const int flags;
 };
 
 /* Use given predictor without Dempster-Shaffer theory if it matches
@@ -84,7 +84,7 @@ struct predictor_info
 #define HITRATE(VAL) ((int)((VAL) * REG_BR_PROB_BASE + 50) / 100)
 
 #define DEF_PREDICTOR(ENUM, NAME, HITRATE, FLAGS) {NAME, HITRATE, FLAGS},
-struct predictor_info predictor_info[] = {
+static const struct predictor_info predictor_info[] = {
 #include "predict.def"
 
   /* Upper bound on predictors.  */
index a0c1d19..33388cf 100644 (file)
@@ -167,8 +167,8 @@ static char * syscalls_absolute_filename;
 /* Type of the structure that holds information about macro unexpansions.  */
 
 struct unexpansion_struct {
-  const char *expanded;
-  const char *contracted;
+  const char *const expanded;
+  const char *const contracted;
 };
 typedef struct unexpansion_struct unexpansion;
 
index f525e69..66ba3f0 100644 (file)
@@ -5536,7 +5536,7 @@ read_expnt:
 /* Return Y = largest integer not greater than X (truncated toward minus
    infinity).  */
 
-static UEMUSHORT bmask[] =
+static const UEMUSHORT bmask[] =
 {
   0xffff,
   0xfffe,
index 71b344a..ff96e47 100644 (file)
@@ -215,15 +215,15 @@ typedef rtx (*insn_gen_fn) PARAMS ((rtx, ...));
 
 struct insn_operand_data
 {
-  insn_operand_predicate_fn predicate;
+  const insn_operand_predicate_fn predicate;
 
-  const char *constraint;
+  const char *const constraint;
 
-  ENUM_BITFIELD(machine_mode) mode : 16;
+  const ENUM_BITFIELD(machine_mode) mode : 16;
 
-  char strict_low;
+  const char strict_low;
 
-  char eliminable;
+  const char eliminable;
 };
 
 /* Legal values for insn_data.output_format.  Indicate what type of data
@@ -235,15 +235,15 @@ struct insn_operand_data
 
 struct insn_data
 {
-  const char *name;
+  const char *const name;
   const PTR output;
-  insn_gen_fn genfun;
-  const struct insn_operand_data *operand;
+  const insn_gen_fn genfun;
+  const struct insn_operand_data *const operand;
 
-  char n_operands;
-  char n_dups;
-  char n_alternatives;
-  char output_format;
+  const char n_operands;
+  const char n_dups;
+  const char n_alternatives;
+  const char output_format;
 };
 
 extern const struct insn_data insn_data[];
index 963fbfe..61119f3 100644 (file)
@@ -74,7 +74,7 @@ HARD_REG_SET fixed_reg_set;
 
 /* Data for initializing the above.  */
 
-static char initial_fixed_regs[] = FIXED_REGISTERS;
+static const char initial_fixed_regs[] = FIXED_REGISTERS;
 
 /* Indexed by hard register number, contains 1 for registers
    that are fixed use or are clobbered by function calls.
@@ -93,7 +93,7 @@ HARD_REG_SET losing_caller_save_reg_set;
 
 /* Data for initializing the above.  */
 
-static char initial_call_used_regs[] = CALL_USED_REGISTERS;
+static const char initial_call_used_regs[] = CALL_USED_REGISTERS;
 
 /* This is much like call_used_regs, except it doesn't have to
    be a superset of FIXED_REGISTERS. This vector indicates
index 123c9d3..ddfbf24 100644 (file)
@@ -3478,7 +3478,7 @@ expand_nl_goto_receiver ()
         that if such an elimination is present, it can always be used.
         This is the case on all known machines; if we don't make this
         assumption, we do unnecessary saving on many machines.  */
-      static struct elims {int from, to;} elim_regs[] = ELIMINABLE_REGS;
+      static const struct elims {const int from, to;} elim_regs[] = ELIMINABLE_REGS;
       size_t i;
 
       for (i = 0; i < ARRAY_SIZE (elim_regs); i++)
index dc3bf74..373c6f9 100644 (file)
@@ -923,14 +923,14 @@ int align_functions;
 int align_functions_log;
 
 /* Table of supported debugging formats.  */
-static struct
+static const struct
 {
-  const char *arg;
+  const char *const arg;
   /* Since PREFERRED_DEBUGGING_TYPE isn't necessarily a
      constant expression, we use NO_DEBUG in its place.  */
-  enum debug_info_type debug_type;
-  int use_extensions_p;
-  const char *description;
+  const enum debug_info_type debug_type;
+  const int use_extensions_p;
+  const char *const description;
 } *da,
 debug_args[] =
 {
@@ -1192,10 +1192,10 @@ lang_independent_options f_options[] =
 
 /* Table of language-specific options.  */
 
-static struct lang_opt
+static const struct lang_opt
 {
-  const char *option;
-  const char *description;
+  const char *const option;
+  const char *const description;
 }
 documented_lang_options[] =
 {
@@ -1378,22 +1378,22 @@ documented_lang_options[] =
    If VALUE is negative, -VALUE is bits to clear.
    (The sign bit is not used so there is no confusion.)  */
 
-struct
+static const struct
 {
-  const char *name;
-  int value;
-  const char *description;
+  const char *const name;
+  const int value;
+  const char *const description;
 }
 target_switches [] = TARGET_SWITCHES;
 
 /* This table is similar, but allows the switch to have a value.  */
 
 #ifdef TARGET_OPTIONS
-struct
+static const struct
 {
-  const char *prefix;
-  const char **variable;
-  const char *description;
+  const char *const prefix;
+  const char **const variable;
+  const char *const description;
 }
 target_options [] = TARGET_OPTIONS;
 #endif
index 771f9d2..e59fd1e 100644 (file)
@@ -285,15 +285,15 @@ parse_number (olen)
 }
 
 struct token {
-  const char *operator;
-  int token;
+  const char *const operator;
+  const int token;
 };
 
 #ifndef NULL
 #define NULL 0
 #endif
 
-static struct token tokentab2[] = {
+static const struct token tokentab2[] = {
   {"&&", AND},
   {"||", OR},
   {"<<", LSH},
@@ -313,7 +313,7 @@ yylex ()
   register int c;
   register int namelen;
   register const char *tokstart;
-  register struct token *toktab;
+  register const struct token *toktab;
 
  retry:
 
index def0e13..56ed9ab 100644 (file)
@@ -2099,12 +2099,12 @@ struct attribute_spec
 {
   /* The name of the attribute (without any leading or trailing __),
      or NULL to mark the end of a table of attributes.  */
-  const char *name;
+  const char *const name;
   /* The minimum length of the list of arguments of the attribute.  */
-  int min_length;
+  const int min_length;
   /* The maximum length of the list of arguments of the attribute
      (-1 for no maximum).  */
-  int max_length;
+  const int max_length;
   /* Whether this attribute requires a DECL.  If it does, it will be passed
      from types of DECLs, function return types and array element types to
      the DECLs, function types and array types respectively; but when
@@ -2112,15 +2112,15 @@ struct attribute_spec
      a warning.  (If greater control is desired for a given attribute,
      this should be false, and the flags argument to the handler may be
      used to gain greater control in that case.)  */
-  bool decl_required;
+  const bool decl_required;
   /* Whether this attribute requires a type.  If it does, it will be passed
      from a DECL to the type of that DECL.  */
-  bool type_required;
+  const bool type_required;
   /* Whether this attribute requires a function (or method) type.  If it does,
      it will be passed from a function pointer type to the target type,
      and from a function return type (which is not itself a function
      pointer type) to the function type.  */
-  bool function_type_required;
+  const bool function_type_required;
   /* Function to handle this attribute.  NODE points to the node to which
      the attribute is to be applied.  If a DECL, it should be modified in
      place; if a TYPE, a copy should be created.  NAME is the name of the
@@ -2135,8 +2135,8 @@ struct attribute_spec
      otherwise the return value should be NULL_TREE.  This pointer may be
      NULL if no special handling is required beyond the checks implied
      by the rest of this structure.  */
-  tree (*handler) PARAMS ((tree *node, tree name, tree args,
-                          int flags, bool *no_add_attrs));
+  tree (*const handler) PARAMS ((tree *node, tree name, tree args,
+                                int flags, bool *no_add_attrs));
 };
 
 extern const struct attribute_spec default_target_attribute_table[];