public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH INSTALLED]: const typedefs part 4/N
@ 2007-07-25 18:55 Kaveh R. GHAZI
  0 siblings, 0 replies; only message in thread
From: Kaveh R. GHAZI @ 2007-07-25 18:55 UTC (permalink / raw)
  To: gcc-patches

This one makes use of const_tree.

Tested on sparc-sun-solaris2.10, no regressions.  Installed.

		--Kaveh


2007-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* expr.c (handled_component_p): Constify.
	* fold-const.c (fit_double_type): Likewise.
	* real.h (real_value_from_int_cst): Likewise.
	* tree-flow-inline.h (gimple_in_ssa_p,
	gimple_aliases_computed_p, gimple_addressable_vars,
	gimple_call_clobbered_vars, gimple_referenced_vars,
	gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
	end_htab_p, end_referenced_vars_p, var_ann, function_ann,
	may_aliases, end_readonly_imm_use_p, has_zero_uses,
	has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
	is_label_stmt, is_global_var, phi_ssa_name_p,
	factoring_name_p, is_call_clobbered, tree_common_ann,
	op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
	unmodifiable_var_p, array_ref_contains_indirect_ref,
	ref_contains_array_ref, lookup_subvars_for_var,
	var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
	gimple_mem_ref_stats): Likewise.
	* tree-flow.h (tree_common_ann, var_ann, function_ann,
	may_aliases, is_exec_stmt, is_label_stmt,
	ref_contains_array_ref, array_ref_contains_indirect_ref,
	var_can_have_subvars, overlap_subvar, is_call_clobbered,
	unmodifiable_var_p): Likewise.
	* tree-gimple.c (is_gimple_min_invariant): Likewise.
	* tree-gimple.h (is_gimple_min_invariant): Likewise.
	* tree.c (type_hash_list, attribute_hash_list, tree_size,
	cst_and_fits_in_hwi, real_value_from_int_cst,
	build_real_from_int_cst, integer_zerop, integer_onep,
	integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
	tree_floor_log2, real_zerop, real_onep, real_twop,
	real_minus_onep, really_constant_p, purpose_member, chain_member,
	list_length, fields_length, int_size_in_bytes, bit_position,
	int_bit_position, byte_position, int_byte_position, expr_align,
	array_type_nelts, tree_node_structure,
	type_contains_placeholder_1, iterative_hash_pointer,
	is_attribute_with_length_p, is_attribute_p, check_qualified_type,
	tree_map_base_eq, type_hash_list, type_hash_eq,
	attribute_hash_list, type_num_arguments, tree_int_cst_equal,
	tree_int_cst_lt, tree_int_cst_compare, host_integerp,
	tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
	simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
	int_fits_type_p, get_containing_scope, decl_function_context,
	decl_type_context, omp_clause_operand_check_failed,
	initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
	* tree.h (omp_clause_operand_check_failed, tree_size,
	build_real_from_int_cst, array_type_nelts, purpose_member,
	tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
	host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
	is_attribute_p, check_qualified_type, expr_align,
	int_size_in_bytes, bit_position, int_bit_position, byte_position,
	int_byte_position, list_length, fields_length, initializer_zerop,
	integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
	integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
	tree_node_structure, handled_component_p, get_containing_scope,
	decl_function_context, decl_type_context, real_zerop,
	type_num_arguments, fit_double_type, really_constant_p,
	int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
	compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
	real_twop, real_minus_onep, int_cst_value): Likewise.

diff -rup orig/egcc-SVN20070721/gcc/expr.c egcc-SVN20070721/gcc/expr.c
--- orig/egcc-SVN20070721/gcc/expr.c	2007-07-13 12:23:50.000000000 -0400
+++ egcc-SVN20070721/gcc/expr.c	2007-07-24 16:08:55.750128122 -0400
@@ -6061,7 +6061,7 @@ component_ref_field_offset (tree exp)
 /* Return 1 if T is an expression that get_inner_reference handles.  */

 int
-handled_component_p (tree t)
+handled_component_p (const_tree t)
 {
   switch (TREE_CODE (t))
     {
diff -rup orig/egcc-SVN20070721/gcc/fold-const.c egcc-SVN20070721/gcc/fold-const.c
--- orig/egcc-SVN20070721/gcc/fold-const.c	2007-07-13 12:23:49.000000000 -0400
+++ egcc-SVN20070721/gcc/fold-const.c	2007-07-24 16:08:55.764615839 -0400
@@ -198,7 +198,7 @@ decode (HOST_WIDE_INT *words, unsigned H

 int
 fit_double_type (unsigned HOST_WIDE_INT l1, HOST_WIDE_INT h1,
-		 unsigned HOST_WIDE_INT *lv, HOST_WIDE_INT *hv, tree type)
+		 unsigned HOST_WIDE_INT *lv, HOST_WIDE_INT *hv, const_tree type)
 {
   unsigned HOST_WIDE_INT low0 = l1;
   HOST_WIDE_INT high0 = h1;
diff -rup orig/egcc-SVN20070721/gcc/real.h egcc-SVN20070721/gcc/real.h
--- orig/egcc-SVN20070721/gcc/real.h	2007-07-18 13:46:10.000000000 -0400
+++ egcc-SVN20070721/gcc/real.h	2007-07-24 16:08:55.766266536 -0400
@@ -391,7 +391,7 @@ extern REAL_VALUE_TYPE dconste;

 /* Function to return a real value (not a tree node)
    from a given integer constant.  */
-REAL_VALUE_TYPE real_value_from_int_cst (tree, tree);
+REAL_VALUE_TYPE real_value_from_int_cst (const_tree, const_tree);

 /* Given a CONST_DOUBLE in FROM, store into TO the value it represents.  */
 #define REAL_VALUE_FROM_CONST_DOUBLE(to, from) \
diff -rup orig/egcc-SVN20070721/gcc/tree-flow-inline.h egcc-SVN20070721/gcc/tree-flow-inline.h
--- orig/egcc-SVN20070721/gcc/tree-flow-inline.h	2007-07-07 23:02:54.000000000 -0400
+++ egcc-SVN20070721/gcc/tree-flow-inline.h	2007-07-24 17:06:43.864537713 -0400
@@ -30,14 +30,14 @@ Boston, MA 02110-1301, USA.  */
    infrastructure is initialized.  Check for presence of the datastructures
    at first place.  */
 static inline bool
-gimple_in_ssa_p (struct function *fun)
+gimple_in_ssa_p (const struct function *fun)
 {
   return fun && fun->gimple_df && fun->gimple_df->in_ssa_p;
 }

 /* 'true' after aliases have been computed (see compute_may_aliases).  */
 static inline bool
-gimple_aliases_computed_p (struct function *fun)
+gimple_aliases_computed_p (const struct function *fun)
 {
   gcc_assert (fun && fun->gimple_df);
   return fun->gimple_df->aliases_computed_p;
@@ -51,7 +51,7 @@ gimple_aliases_computed_p (struct functi
    call-clobbered variables are addressable (e.g., a local static
    variable).  */
 static inline bitmap
-gimple_addressable_vars (struct function *fun)
+gimple_addressable_vars (const struct function *fun)
 {
   gcc_assert (fun && fun->gimple_df);
   return fun->gimple_df->addressable_vars;
@@ -60,7 +60,7 @@ gimple_addressable_vars (struct function
 /* Call clobbered variables in the function.  If bit I is set, then
    REFERENCED_VARS (I) is call-clobbered.  */
 static inline bitmap
-gimple_call_clobbered_vars (struct function *fun)
+gimple_call_clobbered_vars (const struct function *fun)
 {
   gcc_assert (fun && fun->gimple_df);
   return fun->gimple_df->call_clobbered_vars;
@@ -68,7 +68,7 @@ gimple_call_clobbered_vars (struct funct

 /* Array of all variables referenced in the function.  */
 static inline htab_t
-gimple_referenced_vars (struct function *fun)
+gimple_referenced_vars (const struct function *fun)
 {
   if (!fun->gimple_df)
     return NULL;
@@ -77,7 +77,7 @@ gimple_referenced_vars (struct function

 /* Artificial variable used to model the effects of function calls.  */
 static inline tree
-gimple_global_var (struct function *fun)
+gimple_global_var (const struct function *fun)
 {
   gcc_assert (fun && fun->gimple_df);
   return fun->gimple_df->global_var;
@@ -86,7 +86,7 @@ gimple_global_var (struct function *fun)
 /* Artificial variable used to model the effects of nonlocal
    variables.  */
 static inline tree
-gimple_nonlocal_all (struct function *fun)
+gimple_nonlocal_all (const struct function *fun)
 {
   gcc_assert (fun && fun->gimple_df);
   return fun->gimple_df->nonlocal_all;
@@ -95,7 +95,7 @@ gimple_nonlocal_all (struct function *fu
 /* Hashtable of variables annotations.  Used for static variables only;
    local variables have direct pointer in the tree node.  */
 static inline htab_t
-gimple_var_anns (struct function *fun)
+gimple_var_anns (const struct function *fun)
 {
   return fun->gimple_df->var_anns;
 }
@@ -124,7 +124,7 @@ first_htab_element (htab_iterator *hti,
    or NULL if we have  reached the end.  */

 static inline bool
-end_htab_p (htab_iterator *hti)
+end_htab_p (const htab_iterator *hti)
 {
   if (hti->slot >= hti->limit)
     return true;
@@ -165,7 +165,7 @@ first_referenced_var (referenced_var_ite
    iterating through.  */

 static inline bool
-end_referenced_vars_p (referenced_var_iterator *iter)
+end_referenced_vars_p (const referenced_var_iterator *iter)
 {
   return end_htab_p (&iter->hti);
 }
@@ -198,7 +198,7 @@ fill_referenced_var_vec (VEC (tree, heap
 /* Return the variable annotation for T, which must be a _DECL node.
    Return NULL if the variable annotation doesn't already exist.  */
 static inline var_ann_t
-var_ann (tree t)
+var_ann (const_tree t)
 {
   gcc_assert (t);
   gcc_assert (DECL_P (t));
@@ -231,7 +231,7 @@ get_var_ann (tree var)
 /* Return the function annotation for T, which must be a FUNCTION_DECL node.
    Return NULL if the function annotation doesn't already exist.  */
 static inline function_ann_t
-function_ann (tree t)
+function_ann (const_tree t)
 {
   gcc_assert (t);
   gcc_assert (TREE_CODE (t) == FUNCTION_DECL);
@@ -306,7 +306,7 @@ bb_for_stmt (tree t)
 /* Return the may_aliases bitmap for variable VAR, or NULL if it has
    no may aliases.  */
 static inline bitmap
-may_aliases (tree var)
+may_aliases (const_tree var)
 {
   return MTAG_ALIASES (var);
 }
@@ -497,7 +497,7 @@ relink_imm_use_stmt (ssa_use_operand_t *

 /* Return true is IMM has reached the end of the immediate use list.  */
 static inline bool
-end_readonly_imm_use_p (imm_use_iterator *imm)
+end_readonly_imm_use_p (const imm_use_iterator *imm)
 {
   return (imm->imm_use == imm->end_p);
 }
@@ -541,20 +541,18 @@ next_readonly_imm_use (imm_use_iterator

 /* Return true if VAR has no uses.  */
 static inline bool
-has_zero_uses (tree var)
+has_zero_uses (const_tree var)
 {
-  ssa_use_operand_t *ptr;
-  ptr = &(SSA_NAME_IMM_USE_NODE (var));
+  const ssa_use_operand_t *const ptr = &(SSA_NAME_IMM_USE_NODE (var));
   /* A single use means there is no items in the list.  */
   return (ptr == ptr->next);
 }

 /* Return true if VAR has a single use.  */
 static inline bool
-has_single_use (tree var)
+has_single_use (const_tree var)
 {
-  ssa_use_operand_t *ptr;
-  ptr = &(SSA_NAME_IMM_USE_NODE (var));
+  const ssa_use_operand_t *const ptr = &(SSA_NAME_IMM_USE_NODE (var));
   /* A single use means there is one item in the list.  */
   return (ptr != ptr->next && ptr == ptr->next->next);
 }
@@ -563,11 +561,9 @@ has_single_use (tree var)
 /* If VAR has only a single immediate use, return true, and set USE_P and STMT
    to the use pointer and stmt of occurrence.  */
 static inline bool
-single_imm_use (tree var, use_operand_p *use_p, tree *stmt)
+single_imm_use (const_tree var, use_operand_p *use_p, tree *stmt)
 {
-  ssa_use_operand_t *ptr;
-
-  ptr = &(SSA_NAME_IMM_USE_NODE (var));
+  const ssa_use_operand_t *const ptr = &(SSA_NAME_IMM_USE_NODE (var));
   if (ptr != ptr->next && ptr == ptr->next->next)
     {
       *use_p = ptr->next;
@@ -581,13 +577,12 @@ single_imm_use (tree var, use_operand_p

 /* Return the number of immediate uses of VAR.  */
 static inline unsigned int
-num_imm_uses (tree var)
+num_imm_uses (const_tree var)
 {
-  ssa_use_operand_t *ptr, *start;
-  unsigned int num;
+  const ssa_use_operand_t *const start = &(SSA_NAME_IMM_USE_NODE (var));
+  const ssa_use_operand_t *ptr;
+  unsigned int num = 0;

-  start = &(SSA_NAME_IMM_USE_NODE (var));
-  num = 0;
   for (ptr = start->next; ptr != start; ptr = ptr->next)
      num++;

@@ -707,7 +702,7 @@ set_is_used (tree var)

 /* Return true if T is an executable statement.  */
 static inline bool
-is_exec_stmt (tree t)
+is_exec_stmt (const_tree t)
 {
   return (t && !IS_EMPTY_STMT (t) && t != error_mark_node);
 }
@@ -716,7 +711,7 @@ is_exec_stmt (tree t)
 /* Return true if this stmt can be the target of a control transfer stmt such
    as a goto.  */
 static inline bool
-is_label_stmt (tree t)
+is_label_stmt (const_tree t)
 {
   if (t)
     switch (TREE_CODE (t))
@@ -734,7 +729,7 @@ is_label_stmt (tree t)
 /* Return true if T (assumed to be a DECL) is a global variable.  */

 static inline bool
-is_global_var (tree t)
+is_global_var (const_tree t)
 {
   if (MTAG_P (t))
     return (TREE_STATIC (t) || MTAG_GLOBAL (t));
@@ -747,7 +742,7 @@ is_global_var (tree t)
    slip in in the meantime.  */

 static inline bool
-phi_ssa_name_p (tree t)
+phi_ssa_name_p (const_tree t)
 {
   if (TREE_CODE (t) == SSA_NAME)
     return true;
@@ -905,14 +900,14 @@ memory_partition (tree sym)
    name for a memory partition.  */

 static inline bool
-factoring_name_p (tree name)
+factoring_name_p (const_tree name)
 {
   return TREE_CODE (SSA_NAME_VAR (name)) == MEMORY_PARTITION_TAG;
 }

 /* Return true if VAR is a clobbered by function calls.  */
 static inline bool
-is_call_clobbered (tree var)
+is_call_clobbered (const_tree var)
 {
   if (!MTAG_P (var))
     return var_ann (var)->call_clobbered;
@@ -946,7 +941,7 @@ clear_call_clobbered (tree var)
 /* Return the common annotation for T.  Return NULL if the annotation
    doesn't already exist.  */
 static inline tree_ann_common_t
-tree_common_ann (tree t)
+tree_common_ann (const_tree t)
 {
   /* Watch out static variables with unshared annotations.  */
   if (DECL_P (t) && TREE_CODE (t) == VAR_DECL)
@@ -970,7 +965,7 @@ get_tree_common_ann (tree t)

 /* Return true if PTR is finished iterating.  */
 static inline bool
-op_iter_done (ssa_op_iter *ptr)
+op_iter_done (const ssa_op_iter *ptr)
 {
   return ptr->done;
 }
@@ -1436,7 +1431,7 @@ op_iter_init_phidef (ssa_op_iter *ptr, t
 /* Return true is IMM has reached the end of the immediate use stmt list.  */

 static inline bool
-end_imm_use_stmt_p (imm_use_iterator *imm)
+end_imm_use_stmt_p (const imm_use_iterator *imm)
 {
   return (imm->imm_use == imm->end_p);
 }
@@ -1570,7 +1565,7 @@ first_imm_use_on_stmt (imm_use_iterator
 /*  Return TRUE if the last use on the stmt IMM refers to has been visited.  */

 static inline bool
-end_imm_use_on_stmt_p (imm_use_iterator *imm)
+end_imm_use_on_stmt_p (const imm_use_iterator *imm)
 {
   return (imm->imm_use == &(imm->iter_node));
 }
@@ -1593,7 +1588,7 @@ next_imm_use_on_stmt (imm_use_iterator *
 /* Return true if VAR cannot be modified by the program.  */

 static inline bool
-unmodifiable_var_p (tree var)
+unmodifiable_var_p (const_tree var)
 {
   if (TREE_CODE (var) == SSA_NAME)
     var = SSA_NAME_VAR (var);
@@ -1607,7 +1602,7 @@ unmodifiable_var_p (tree var)
 /* Return true if REF, an ARRAY_REF, has an INDIRECT_REF somewhere in it.  */

 static inline bool
-array_ref_contains_indirect_ref (tree ref)
+array_ref_contains_indirect_ref (const_tree ref)
 {
   gcc_assert (TREE_CODE (ref) == ARRAY_REF);

@@ -1622,7 +1617,7 @@ array_ref_contains_indirect_ref (tree re
    somewhere in it.  */

 static inline bool
-ref_contains_array_ref (tree ref)
+ref_contains_array_ref (const_tree ref)
 {
   gcc_assert (handled_component_p (ref));

@@ -1639,7 +1634,7 @@ ref_contains_array_ref (tree ref)
    subvariables for it.  */

 static inline subvar_t *
-lookup_subvars_for_var (tree var)
+lookup_subvars_for_var (const_tree var)
 {
   var_ann_t ann = var_ann (var);
   gcc_assert (ann);
@@ -1682,7 +1677,7 @@ get_subvar_at (tree var, unsigned HOST_W
    types which are not gimple registers can have subvars.  */

 static inline bool
-var_can_have_subvars (tree v)
+var_can_have_subvars (const_tree v)
 {
   /* Volatile variables should never have subvars.  */
   if (TREE_THIS_VOLATILE (v))
@@ -1712,7 +1707,7 @@ var_can_have_subvars (tree v)

 static inline bool
 overlap_subvar (unsigned HOST_WIDE_INT offset, unsigned HOST_WIDE_INT size,
-		tree sv,  bool *exact)
+		const_tree sv,  bool *exact)
 {
   /* There are three possible cases of overlap.
      1. We can have an exact overlap, like so:
@@ -1811,14 +1806,14 @@ get_value_handle (tree expr)

 /* Accessor to tree-ssa-operands.c caches.  */
 static inline struct ssa_operands *
-gimple_ssa_operands (struct function *fun)
+gimple_ssa_operands (const struct function *fun)
 {
   return &fun->gimple_df->ssa_operands;
 }

 /* Map describing reference statistics for function FN.  */
 static inline struct mem_ref_stats_d *
-gimple_mem_ref_stats (struct function *fn)
+gimple_mem_ref_stats (const struct function *fn)
 {
   return &fn->gimple_df->mem_ref_stats;
 }
diff -rup orig/egcc-SVN20070721/gcc/tree-flow.h egcc-SVN20070721/gcc/tree-flow.h
--- orig/egcc-SVN20070721/gcc/tree-flow.h	2007-07-09 23:03:18.000000000 -0400
+++ egcc-SVN20070721/gcc/tree-flow.h	2007-07-24 17:04:53.443281209 -0400
@@ -519,11 +519,11 @@ typedef struct function_ann_d *function_
 typedef struct stmt_ann_d *stmt_ann_t;
 typedef struct tree_ann_common_d *tree_ann_common_t;

-static inline tree_ann_common_t tree_common_ann (tree);
+static inline tree_ann_common_t tree_common_ann (const_tree);
 static inline tree_ann_common_t get_tree_common_ann (tree);
-static inline var_ann_t var_ann (tree);
+static inline var_ann_t var_ann (const_tree);
 static inline var_ann_t get_var_ann (tree);
-static inline function_ann_t function_ann (tree);
+static inline function_ann_t function_ann (const_tree);
 static inline function_ann_t get_function_ann (tree);
 static inline stmt_ann_t stmt_ann (tree);
 static inline bool has_stmt_ann (tree);
@@ -534,11 +534,11 @@ extern void set_bb_for_stmt (tree, basic
 static inline bool noreturn_call_p (tree);
 static inline void update_stmt (tree);
 static inline bool stmt_modified_p (tree);
-static inline bitmap may_aliases (tree);
+static inline bitmap may_aliases (const_tree);
 static inline int get_lineno (tree);
 static inline const char *get_filename (tree);
-static inline bool is_exec_stmt (tree);
-static inline bool is_label_stmt (tree);
+static inline bool is_exec_stmt (const_tree);
+static inline bool is_label_stmt (const_tree);
 static inline bitmap addresses_taken (tree);

 /*---------------------------------------------------------------------------
@@ -840,14 +840,14 @@ extern void count_uses_and_derefs (tree,
 				   unsigned *);
 static inline subvar_t get_subvars_for_var (tree);
 static inline tree get_subvar_at (tree, unsigned HOST_WIDE_INT);
-static inline bool ref_contains_array_ref (tree);
-static inline bool array_ref_contains_indirect_ref (tree);
+static inline bool ref_contains_array_ref (const_tree);
+static inline bool array_ref_contains_indirect_ref (const_tree);
 extern tree get_ref_base_and_extent (tree, HOST_WIDE_INT *,
 				     HOST_WIDE_INT *, HOST_WIDE_INT *);
-static inline bool var_can_have_subvars (tree);
+static inline bool var_can_have_subvars (const_tree);
 static inline bool overlap_subvar (unsigned HOST_WIDE_INT,
 				   unsigned HOST_WIDE_INT,
-				   tree, bool *);
+				   const_tree, bool *);
 extern tree create_tag_raw (enum tree_code, tree, const char *);
 extern void delete_mem_ref_stats (struct function *);
 extern void dump_mem_ref_stats (FILE *);
@@ -1061,10 +1061,10 @@ enum escape_type
 };

 /* In tree-flow-inline.h  */
-static inline bool is_call_clobbered (tree);
+static inline bool is_call_clobbered (const_tree);
 static inline void mark_call_clobbered (tree, unsigned int);
 static inline void set_is_used (tree);
-static inline bool unmodifiable_var_p (tree);
+static inline bool unmodifiable_var_p (const_tree);

 /* In tree-eh.c  */
 extern void make_eh_edges (tree);
diff -rup orig/egcc-SVN20070721/gcc/tree-gimple.c egcc-SVN20070721/gcc/tree-gimple.c
--- orig/egcc-SVN20070721/gcc/tree-gimple.c	2007-07-13 12:23:49.000000000 -0400
+++ egcc-SVN20070721/gcc/tree-gimple.c	2007-07-24 17:00:11.832056892 -0400
@@ -170,7 +170,7 @@ is_gimple_addressable (tree t)
    form of function invariant.  */

 bool
-is_gimple_min_invariant (tree t)
+is_gimple_min_invariant (const_tree t)
 {
   switch (TREE_CODE (t))
     {
diff -rup orig/egcc-SVN20070721/gcc/tree-gimple.h egcc-SVN20070721/gcc/tree-gimple.h
--- orig/egcc-SVN20070721/gcc/tree-gimple.h	2006-06-13 20:00:55.000000000 -0400
+++ egcc-SVN20070721/gcc/tree-gimple.h	2007-07-24 17:00:05.528870281 -0400
@@ -64,7 +64,7 @@ extern bool is_gimple_addressable (tree)
 extern bool is_gimple_lvalue (tree);

 /* Returns true iff T is a GIMPLE restricted function invariant.  */
-extern bool is_gimple_min_invariant (tree);
+extern bool is_gimple_min_invariant (const_tree);
 /* Returns true iff T is a GIMPLE rvalue.  */
 extern bool is_gimple_val (tree);
 /* Returns true iff T is a GIMPLE asm statement input.  */
diff -rup orig/egcc-SVN20070721/gcc/tree.c egcc-SVN20070721/gcc/tree.c
--- orig/egcc-SVN20070721/gcc/tree.c	2007-07-24 17:08:56.553065552 -0400
+++ egcc-SVN20070721/gcc/tree.c	2007-07-24 16:08:55.790245467 -0400
@@ -162,8 +162,8 @@ static void print_type_hash_statistics (
 static void print_debug_expr_statistics (void);
 static void print_value_expr_statistics (void);
 static int type_hash_marked_p (const void *);
-static unsigned int type_hash_list (tree, hashval_t);
-static unsigned int attribute_hash_list (tree, hashval_t);
+static unsigned int type_hash_list (const_tree, hashval_t);
+static unsigned int attribute_hash_list (const_tree, hashval_t);

 tree global_trees[TI_MAX];
 tree integer_types[itk_none];
@@ -439,9 +439,9 @@ tree_code_size (enum tree_code code)
 /* Compute the number of bytes occupied by NODE.  This routine only
    looks at TREE_CODE, except for those nodes that have variable sizes.  */
 size_t
-tree_size (tree node)
+tree_size (const_tree node)
 {
-  enum tree_code code = TREE_CODE (node);
+  const enum tree_code code = TREE_CODE (node);
   switch (code)
     {
     case PHI_NODE:
@@ -981,7 +981,7 @@ build_low_bits_mask (tree type, unsigned
    HOST_WIDE_INT without loss of precision.  */

 bool
-cst_and_fits_in_hwi (tree x)
+cst_and_fits_in_hwi (const_tree x)
 {
   if (TREE_CODE (x) != INTEGER_CST)
     return false;
@@ -1123,7 +1123,7 @@ build_real (tree type, REAL_VALUE_TYPE d
    and whose value is the integer value of the INTEGER_CST node I.  */

 REAL_VALUE_TYPE
-real_value_from_int_cst (tree type, tree i)
+real_value_from_int_cst (const_tree type, const_tree i)
 {
   REAL_VALUE_TYPE d;

@@ -1141,7 +1141,7 @@ real_value_from_int_cst (tree type, tree
    representing the same value as a floating-point constant of type TYPE.  */

 tree
-build_real_from_int_cst (tree type, tree i)
+build_real_from_int_cst (tree type, const_tree i)
 {
   tree v;
   int overflow = TREE_OVERFLOW (i);
@@ -1294,7 +1294,7 @@ make_tree_vec_stat (int len MEM_STAT_DEC
    of zero.  */

 int
-integer_zerop (tree expr)
+integer_zerop (const_tree expr)
 {
   STRIP_NOPS (expr);

@@ -1310,7 +1310,7 @@ integer_zerop (tree expr)
    complex constant.  */

 int
-integer_onep (tree expr)
+integer_onep (const_tree expr)
 {
   STRIP_NOPS (expr);

@@ -1326,7 +1326,7 @@ integer_onep (tree expr)
    it contains.  Likewise for the corresponding complex constant.  */

 int
-integer_all_onesp (tree expr)
+integer_all_onesp (const_tree expr)
 {
   int prec;
   int uns;
@@ -1378,7 +1378,7 @@ integer_all_onesp (tree expr)
    one bit on).  */

 int
-integer_pow2p (tree expr)
+integer_pow2p (const_tree expr)
 {
   int prec;
   HOST_WIDE_INT high, low;
@@ -1423,7 +1423,7 @@ integer_pow2p (tree expr)
    complex constant other than zero.  */

 int
-integer_nonzerop (tree expr)
+integer_nonzerop (const_tree expr)
 {
   STRIP_NOPS (expr);

@@ -1439,7 +1439,7 @@ integer_nonzerop (tree expr)
    power of two.  */

 int
-tree_log2 (tree expr)
+tree_log2 (const_tree expr)
 {
   int prec;
   HOST_WIDE_INT high, low;
@@ -1477,7 +1477,7 @@ tree_log2 (tree expr)
    than or equal to EXPR.  */

 int
-tree_floor_log2 (tree expr)
+tree_floor_log2 (const_tree expr)
 {
   int prec;
   HOST_WIDE_INT high, low;
@@ -1515,7 +1515,7 @@ tree_floor_log2 (tree expr)
 /* Return 1 if EXPR is the real constant zero.  */

 int
-real_zerop (tree expr)
+real_zerop (const_tree expr)
 {
   STRIP_NOPS (expr);

@@ -1529,7 +1529,7 @@ real_zerop (tree expr)
 /* Return 1 if EXPR is the real constant one in real or complex form.  */

 int
-real_onep (tree expr)
+real_onep (const_tree expr)
 {
   STRIP_NOPS (expr);

@@ -1543,7 +1543,7 @@ real_onep (tree expr)
 /* Return 1 if EXPR is the real constant two.  */

 int
-real_twop (tree expr)
+real_twop (const_tree expr)
 {
   STRIP_NOPS (expr);

@@ -1557,7 +1557,7 @@ real_twop (tree expr)
 /* Return 1 if EXPR is the real constant minus one.  */

 int
-real_minus_onep (tree expr)
+real_minus_onep (const_tree expr)
 {
   STRIP_NOPS (expr);

@@ -1571,7 +1571,7 @@ real_minus_onep (tree expr)
 /* Nonzero if EXP is a constant or a cast of a constant.  */

 int
-really_constant_p (tree exp)
+really_constant_p (const_tree exp)
 {
   /* This is not quite the same as STRIP_NOPS.  It does more.  */
   while (TREE_CODE (exp) == NOP_EXPR
@@ -1600,7 +1600,7 @@ value_member (tree elem, tree list)
    Return 0 if ELEM is not in LIST.  */

 tree
-purpose_member (tree elem, tree list)
+purpose_member (const_tree elem, tree list)
 {
   while (list)
     {
@@ -1614,7 +1614,7 @@ purpose_member (tree elem, tree list)
 /* Return nonzero if ELEM is part of the chain CHAIN.  */

 int
-chain_member (tree elem, tree chain)
+chain_member (const_tree elem, const_tree chain)
 {
   while (chain)
     {
@@ -1631,11 +1631,11 @@ chain_member (tree elem, tree chain)
    This is the Lisp primitive `length'.  */

 int
-list_length (tree t)
+list_length (const_tree t)
 {
-  tree p = t;
+  const_tree p = t;
 #ifdef ENABLE_TREE_CHECKING
-  tree q = t;
+  const_tree q = t;
 #endif
   int len = 0;

@@ -1656,7 +1656,7 @@ list_length (tree t)
 /* Returns the number of FIELD_DECLs in TYPE.  */

 int
-fields_length (tree type)
+fields_length (const_tree type)
 {
   tree t = TYPE_FIELDS (type);
   int count = 0;
@@ -1793,7 +1793,7 @@ size_in_bytes (tree type)
    or return -1 if the size can vary or is larger than an integer.  */

 HOST_WIDE_INT
-int_size_in_bytes (tree type)
+int_size_in_bytes (const_tree type)
 {
   tree t;

@@ -1849,7 +1849,7 @@ max_int_size_in_bytes (tree type)
    This is a tree of type bitsizetype.  */

 tree
-bit_position (tree field)
+bit_position (const_tree field)
 {
   return bit_from_pos (DECL_FIELD_OFFSET (field),
 		       DECL_FIELD_BIT_OFFSET (field));
@@ -1860,7 +1860,7 @@ bit_position (tree field)
    option of returning -1 like int_size_in_byte can.  */

 HOST_WIDE_INT
-int_bit_position (tree field)
+int_bit_position (const_tree field)
 {
   return tree_low_cst (bit_position (field), 0);
 }
@@ -1869,7 +1869,7 @@ int_bit_position (tree field)
    This is a tree of type sizetype.  */

 tree
-byte_position (tree field)
+byte_position (const_tree field)
 {
   return byte_from_pos (DECL_FIELD_OFFSET (field),
 			DECL_FIELD_BIT_OFFSET (field));
@@ -1880,7 +1880,7 @@ byte_position (tree field)
    option of returning -1 like int_size_in_byte can.  */

 HOST_WIDE_INT
-int_byte_position (tree field)
+int_byte_position (const_tree field)
 {
   return tree_low_cst (byte_position (field), 0);
 }
@@ -1888,7 +1888,7 @@ int_byte_position (tree field)
 /* Return the strictest alignment, in bits, that T is known to have.  */

 unsigned int
-expr_align (tree t)
+expr_align (const_tree t)
 {
   unsigned int align0, align1;

@@ -1938,7 +1938,7 @@ expr_align (tree t)
    ARRAY_TYPE) minus one. This counts only elements of the top array.  */

 tree
-array_type_nelts (tree type)
+array_type_nelts (const_tree type)
 {
   tree index_type, min, max;

@@ -2130,9 +2130,9 @@ skip_simple_arithmetic (tree expr)
 /* Return which tree structure is used by T.  */

 enum tree_node_structure_enum
-tree_node_structure (tree t)
+tree_node_structure (const_tree t)
 {
-  enum tree_code code = TREE_CODE (t);
+  const enum tree_code code = TREE_CODE (t);

   switch (TREE_CODE_CLASS (code))
     {
@@ -2297,7 +2297,7 @@ contains_placeholder_p (tree exp)
    (for QUAL_UNION_TYPE) and field positions.  */

 static bool
-type_contains_placeholder_1 (tree type)
+type_contains_placeholder_1 (const_tree type)
 {
   /* If the size contains a placeholder or the parent type (component type in
      the case of arrays) type involves a placeholder, this type does.  */
@@ -3585,7 +3585,7 @@ iterative_hash_hashval_t (hashval_t val,

 /* Produce good hash value combining PTR and VAL2.  */
 static inline hashval_t
-iterative_hash_pointer (void *ptr, hashval_t val2)
+iterative_hash_pointer (const void *ptr, hashval_t val2)
 {
   if (sizeof (ptr) == sizeof (hashval_t))
     return iterative_hash_hashval_t ((size_t) ptr, val2);
@@ -3723,7 +3723,7 @@ build_type_attribute_variant (tree ttype
    their canonicalized form.  */

 static int
-is_attribute_with_length_p (const char *attr, int attr_len, tree ident)
+is_attribute_with_length_p (const char *attr, int attr_len, const_tree ident)
 {
   int ident_len;
   const char *p;
@@ -3766,7 +3766,7 @@ is_attribute_with_length_p (const char *
    We try both `text' and `__text__', ATTR may be either one.  */

 int
-is_attribute_p (const char *attr, tree ident)
+is_attribute_p (const char *attr, const_tree ident)
 {
   return is_attribute_with_length_p (attr, strlen (attr), ident);
 }
@@ -4117,7 +4117,7 @@ set_type_quals (tree type, int type_qual
 /* Returns true iff cand is equivalent to base with type_quals.  */

 bool
-check_qualified_type (tree cand, tree base, int type_quals)
+check_qualified_type (const_tree cand, const_tree base, int type_quals)
 {
   return (TYPE_QUALS (cand) == type_quals
 	  && TYPE_NAME (cand) == TYPE_NAME (base)
@@ -4244,7 +4244,7 @@ build_variant_type_copy (tree type)
 int
 tree_map_base_eq (const void *va, const void *vb)
 {
-  const struct tree_map_base  *a = va, *b = vb;
+  const struct tree_map_base  *const a = va, *const b = vb;
   return (a->from == b->from);
 }

@@ -4487,10 +4487,10 @@ decl_value_expr_insert (tree from, tree
    with types in the TREE_VALUE slots), by adding the hash codes
    of the individual types.  */

-unsigned int
-type_hash_list (tree list, hashval_t hashcode)
+static unsigned int
+type_hash_list (const_tree list, hashval_t hashcode)
 {
-  tree tail;
+  const_tree tail;

   for (tail = list; tail; tail = TREE_CHAIN (tail))
     if (TREE_VALUE (tail) != error_mark_node)
@@ -4507,7 +4507,7 @@ type_hash_list (tree list, hashval_t has
 static int
 type_hash_eq (const void *va, const void *vb)
 {
-  const struct type_hash *a = va, *b = vb;
+  const struct type_hash *const a = va, *const b = vb;

   /* First test the things that are the same for all types.  */
   if (a->hash != b->hash
@@ -4704,10 +4704,10 @@ print_type_hash_statistics (void)
    with names in the TREE_PURPOSE slots and args in the TREE_VALUE slots),
    by adding the hash codes of the individual attributes.  */

-unsigned int
-attribute_hash_list (tree list, hashval_t hashcode)
+static unsigned int
+attribute_hash_list (const_tree list, hashval_t hashcode)
 {
-  tree tail;
+  const_tree tail;

   for (tail = list; tail; tail = TREE_CHAIN (tail))
     /* ??? Do we want to add in TREE_VALUE too? */
@@ -4808,7 +4808,7 @@ type_list_equal (tree l1, tree l2)
    then this function counts only the ordinary arguments.  */

 int
-type_num_arguments (tree type)
+type_num_arguments (const_tree type)
 {
   int i = 0;
   tree t;
@@ -4828,7 +4828,7 @@ type_num_arguments (tree type)
    represent the same constant value.  */

 int
-tree_int_cst_equal (tree t1, tree t2)
+tree_int_cst_equal (const_tree t1, const_tree t2)
 {
   if (t1 == t2)
     return 1;
@@ -4849,7 +4849,7 @@ tree_int_cst_equal (tree t1, tree t2)
    The precise way of comparison depends on their data type.  */

 int
-tree_int_cst_lt (tree t1, tree t2)
+tree_int_cst_lt (const_tree t1, const_tree t2)
 {
   if (t1 == t2)
     return 0;
@@ -4876,7 +4876,7 @@ tree_int_cst_lt (tree t1, tree t2)
 /* Returns -1 if T1 < T2, 0 if T1 == T2, and 1 if T1 > T2.  */

 int
-tree_int_cst_compare (tree t1, tree t2)
+tree_int_cst_compare (const_tree t1, const_tree t2)
 {
   if (tree_int_cst_lt (t1, t2))
     return -1;
@@ -4892,7 +4892,7 @@ tree_int_cst_compare (tree t1, tree t2)
    be represented in a single unsigned HOST_WIDE_INT.  */

 int
-host_integerp (tree t, int pos)
+host_integerp (const_tree t, int pos)
 {
   return (TREE_CODE (t) == INTEGER_CST
 	  && ((TREE_INT_CST_HIGH (t) == 0
@@ -4908,7 +4908,7 @@ host_integerp (tree t, int pos)
    be non-negative.  We must be able to satisfy the above conditions.  */

 HOST_WIDE_INT
-tree_low_cst (tree t, int pos)
+tree_low_cst (const_tree t, int pos)
 {
   gcc_assert (host_integerp (t, pos));
   return TREE_INT_CST_LOW (t);
@@ -4917,7 +4917,7 @@ tree_low_cst (tree t, int pos)
 /* Return the most significant bit of the integer constant T.  */

 int
-tree_int_cst_msb (tree t)
+tree_int_cst_msb (const_tree t)
 {
   int prec;
   HOST_WIDE_INT h;
@@ -4936,7 +4936,7 @@ tree_int_cst_msb (tree t)
    Note that -1 will never be returned if T's type is unsigned.  */

 int
-tree_int_cst_sgn (tree t)
+tree_int_cst_sgn (const_tree t)
 {
   if (TREE_INT_CST_LOW (t) == 0 && TREE_INT_CST_HIGH (t) == 0)
     return 0;
@@ -4952,7 +4952,7 @@ tree_int_cst_sgn (tree t)
    are known to be equal; otherwise return 0.  */

 int
-simple_cst_list_equal (tree l1, tree l2)
+simple_cst_list_equal (const_tree l1, const_tree l2)
 {
   while (l1 != NULL_TREE && l2 != NULL_TREE)
     {
@@ -5137,7 +5137,7 @@ simple_cst_equal (tree t1, tree t2)
    than U, respectively.  */

 int
-compare_tree_int (tree t, unsigned HOST_WIDE_INT u)
+compare_tree_int (const_tree t, unsigned HOST_WIDE_INT u)
 {
   if (tree_int_cst_sgn (t) < 0)
     return -1;
@@ -5211,7 +5211,7 @@ commutative_tree_code (enum tree_code co
    would compare equal using operand_equal_p.  */

 hashval_t
-iterative_hash_expr (tree t, hashval_t val)
+iterative_hash_expr (const_tree t, hashval_t val)
 {
   int i;
   enum tree_code code;
@@ -6193,7 +6193,7 @@ get_narrower (tree op, int *unsignedp_pt
    for type TYPE (an INTEGER_TYPE).  */

 int
-int_fits_type_p (tree c, tree type)
+int_fits_type_p (const_tree c, const_tree type)
 {
   tree type_low_bound = TYPE_MIN_VALUE (type);
   tree type_high_bound = TYPE_MAX_VALUE (type);
@@ -6428,7 +6428,7 @@ variably_modified_type_p (tree type, tre
    NULL_TREE if there is no containing scope.  */

 tree
-get_containing_scope (tree t)
+get_containing_scope (const_tree t)
 {
   return (TYPE_P (t) ? TYPE_CONTEXT (t) : DECL_CONTEXT (t));
 }
@@ -6437,7 +6437,7 @@ get_containing_scope (tree t)
    a FUNCTION_DECL, or zero if none.  */

 tree
-decl_function_context (tree decl)
+decl_function_context (const_tree decl)
 {
   tree context;

@@ -6473,7 +6473,7 @@ decl_function_context (tree decl)
    TYPE_DECLs and FUNCTION_DECLs are transparent to this function.  */

 tree
-decl_type_context (tree decl)
+decl_type_context (const_tree decl)
 {
   tree context = DECL_CONTEXT (decl);

@@ -6960,7 +6960,7 @@ tree_operand_check_failed (int idx, cons
    operands of an OMP_CLAUSE node.  */

 void
-omp_clause_operand_check_failed (int idx, tree t, const char *file,
+omp_clause_operand_check_failed (int idx, const_tree t, const char *file,
 			         int line, const char *function)
 {
   internal_error
@@ -7501,7 +7501,7 @@ build_resx (int region_number)
 /* Given an initializer INIT, return TRUE if INIT is zero or some
    aggregate of zeros.  Otherwise return FALSE.  */
 bool
-initializer_zerop (tree init)
+initializer_zerop (const_tree init)
 {
   tree elt;

@@ -7846,7 +7846,7 @@ find_compatible_field (tree record, tree
 /* Return value of a constant X.  */

 HOST_WIDE_INT
-int_cst_value (tree x)
+int_cst_value (const_tree x)
 {
   unsigned bits = TYPE_PRECISION (TREE_TYPE (x));
   unsigned HOST_WIDE_INT val = TREE_INT_CST_LOW (x);
@@ -8025,7 +8025,7 @@ operand_equal_for_phi_arg_p (tree arg0,
    ??? Use ffs if available?  */

 tree
-num_ending_zeros (tree x)
+num_ending_zeros (const_tree x)
 {
   unsigned HOST_WIDE_INT fr, nfr;
   unsigned num, abits;
diff -rup orig/egcc-SVN20070721/gcc/tree.h egcc-SVN20070721/gcc/tree.h
--- orig/egcc-SVN20070721/gcc/tree.h	2007-07-24 17:08:56.612630950 -0400
+++ egcc-SVN20070721/gcc/tree.h	2007-07-24 16:08:55.797805278 -0400
@@ -887,7 +887,7 @@ extern void tree_operand_check_failed (i
 extern void omp_clause_check_failed (const_tree, const char *, int,
 				     const char *, enum omp_clause_code)
     ATTRIBUTE_NORETURN;
-extern void omp_clause_operand_check_failed (int, tree, const char *,
+extern void omp_clause_operand_check_failed (int, const_tree, const char *,
 				             int, const char *)
     ATTRIBUTE_NORETURN;
 extern void omp_clause_range_check_failed (const_tree, const char *, int,
@@ -3642,7 +3642,7 @@ extern bool decl_assembler_name_equal (t
 /* Compute the number of bytes occupied by 'node'.  This routine only
    looks at TREE_CODE and, if the code is TREE_VEC, TREE_VEC_LENGTH.  */

-extern size_t tree_size (tree);
+extern size_t tree_size (const_tree);

 /* Compute the number of bytes occupied by a tree with code CODE.  This
    function cannot be used for TREE_VEC or PHI_NODE codes, which are of
@@ -3759,7 +3759,7 @@ extern tree build_vector_from_ctor (tree
 extern tree build_constructor (tree, VEC(constructor_elt,gc) *);
 extern tree build_constructor_single (tree, tree, tree);
 extern tree build_constructor_from_list (tree, tree);
-extern tree build_real_from_int_cst (tree, tree);
+extern tree build_real_from_int_cst (tree, const_tree);
 extern tree build_complex (tree, tree, tree);
 extern tree build_one_cst (tree);
 extern tree build_string (int, const char *);
@@ -3811,22 +3811,22 @@ extern tree build_method_type (tree, tre
 extern tree build_offset_type (tree, tree);
 extern tree build_complex_type (tree);
 extern tree build_resx (int);
-extern tree array_type_nelts (tree);
+extern tree array_type_nelts (const_tree);
 extern bool in_array_bounds_p (tree);
 extern bool range_in_array_bounds_p (tree);

 extern tree value_member (tree, tree);
-extern tree purpose_member (tree, tree);
+extern tree purpose_member (const_tree, tree);

 extern int attribute_list_equal (tree, tree);
 extern int attribute_list_contained (tree, tree);
-extern int tree_int_cst_equal (tree, tree);
-extern int tree_int_cst_lt (tree, tree);
-extern int tree_int_cst_compare (tree, tree);
-extern int host_integerp (tree, int);
-extern HOST_WIDE_INT tree_low_cst (tree, int);
-extern int tree_int_cst_msb (tree);
-extern int tree_int_cst_sgn (tree);
+extern int tree_int_cst_equal (const_tree, const_tree);
+extern int tree_int_cst_lt (const_tree, const_tree);
+extern int tree_int_cst_compare (const_tree, const_tree);
+extern int host_integerp (const_tree, int);
+extern HOST_WIDE_INT tree_low_cst (const_tree, int);
+extern int tree_int_cst_msb (const_tree);
+extern int tree_int_cst_sgn (const_tree);
 extern int tree_int_cst_sign_bit (tree);
 extern bool tree_expr_nonnegative_p (tree);
 extern bool tree_expr_nonnegative_warnv_p (tree, bool *);
@@ -3926,7 +3926,7 @@ extern tree merge_type_attributes (tree,
 /* Given a tree node and a string, return nonzero if the tree node is
    a valid attribute name for the string.  */

-extern int is_attribute_p (const char *, tree);
+extern int is_attribute_p (const char *, const_tree);

 /* Given an attribute name and a list of attributes, return the list element
    of the attribute or NULL_TREE if not found.  */
@@ -3954,7 +3954,7 @@ extern tree handle_dll_attribute (tree *
 /* Check whether CAND is suitable to be returned from get_qualified_type
    (BASE, TYPE_QUALS).  */

-extern bool check_qualified_type (tree, tree, int);
+extern bool check_qualified_type (const_tree, const_tree, int);

 /* Return a version of the TYPE, qualified as indicated by the
    TYPE_QUALS, if one exists.  If no qualified version exists yet,
@@ -4076,17 +4076,17 @@ extern enum machine_mode mode_for_size_t
 extern tree non_lvalue (tree);

 extern tree convert (tree, tree);
-extern unsigned int expr_align (tree);
+extern unsigned int expr_align (const_tree);
 extern tree expr_first (tree);
 extern tree expr_last (tree);
 extern tree expr_only (tree);
 extern tree size_in_bytes (tree);
-extern HOST_WIDE_INT int_size_in_bytes (tree);
+extern HOST_WIDE_INT int_size_in_bytes (const_tree);
 extern HOST_WIDE_INT max_int_size_in_bytes (tree);
-extern tree bit_position (tree);
-extern HOST_WIDE_INT int_bit_position (tree);
-extern tree byte_position (tree);
-extern HOST_WIDE_INT int_byte_position (tree);
+extern tree bit_position (const_tree);
+extern HOST_WIDE_INT int_bit_position (const_tree);
+extern tree byte_position (const_tree);
+extern HOST_WIDE_INT int_byte_position (const_tree);

 /* Define data structures, macros, and functions for handling sizes
    and the various types used to represent sizes.  */
@@ -4155,16 +4155,16 @@ extern tree nreverse (tree);
 /* Returns the length of a chain of nodes
    (number of chain pointers to follow before reaching a null pointer).  */

-extern int list_length (tree);
+extern int list_length (const_tree);

 /* Returns the number of FIELD_DECLs in a type.  */

-extern int fields_length (tree);
+extern int fields_length (const_tree);

 /* Given an initializer INIT, return TRUE if INIT is zero or some
    aggregate of zeros.  Otherwise return FALSE.  */

-extern bool initializer_zerop (tree);
+extern bool initializer_zerop (const_tree);

 /* Examine CTOR to discover:
    * how many scalar fields are set to nonzero values,
@@ -4184,29 +4184,29 @@ extern HOST_WIDE_INT count_type_elements

 /* integer_zerop (tree x) is nonzero if X is an integer constant of value 0.  */

-extern int integer_zerop (tree);
+extern int integer_zerop (const_tree);

 /* integer_onep (tree x) is nonzero if X is an integer constant of value 1.  */

-extern int integer_onep (tree);
+extern int integer_onep (const_tree);

 /* integer_all_onesp (tree x) is nonzero if X is an integer constant
    all of whose significant bits are 1.  */

-extern int integer_all_onesp (tree);
+extern int integer_all_onesp (const_tree);

 /* integer_pow2p (tree x) is nonzero is X is an integer constant with
    exactly one bit 1.  */

-extern int integer_pow2p (tree);
+extern int integer_pow2p (const_tree);

 /* integer_nonzerop (tree x) is nonzero if X is an integer constant
    with a nonzero value.  */

-extern int integer_nonzerop (tree);
+extern int integer_nonzerop (const_tree);

-extern bool cst_and_fits_in_hwi (tree);
-extern tree num_ending_zeros (tree);
+extern bool cst_and_fits_in_hwi (const_tree);
+extern tree num_ending_zeros (const_tree);

 /* staticp (tree x) is nonzero if X is a reference to data allocated
    at a fixed address in memory.  Returns the outermost data.  */
@@ -4226,7 +4226,7 @@ extern tree skip_simple_arithmetic (tree

 /* Return which tree structure is used by T.  */

-enum tree_node_structure_enum tree_node_structure (tree);
+enum tree_node_structure_enum tree_node_structure (const_tree);

 /* Return 1 if EXP contains a PLACEHOLDER_EXPR; i.e., if it represents a size
    or offset that depends on a field within a record.
@@ -4323,7 +4323,7 @@ extern bool contains_packed_reference (t

 /* Return 1 if T is an expression that get_inner_reference handles.  */

-extern int handled_component_p (tree);
+extern int handled_component_p (const_tree);

 /* Return a tree of sizetype representing the size, in bytes, of the element
    of EXP, an ARRAY_REF.  */
@@ -4348,18 +4348,18 @@ extern tree component_ref_field_offset (
 /* Given a DECL or TYPE, return the scope in which it was declared, or
    NUL_TREE if there is no containing scope.  */

-extern tree get_containing_scope (tree);
+extern tree get_containing_scope (const_tree);

 /* Return the FUNCTION_DECL which provides this _DECL with its context,
    or zero if none.  */
-extern tree decl_function_context (tree);
+extern tree decl_function_context (const_tree);

 /* Return the RECORD_TYPE, UNION_TYPE, or QUAL_UNION_TYPE which provides
    this _DECL with its context, or zero if none.  */
-extern tree decl_type_context (tree);
+extern tree decl_type_context (const_tree);

 /* Return 1 if EXPR is the real constant zero.  */
-extern int real_zerop (tree);
+extern int real_zerop (const_tree);

 /* Declare commonly used variables for tree structure.  */

@@ -4381,7 +4381,7 @@ extern void clean_symbol_name (char *);
 extern tree get_file_function_name (const char *);
 extern tree get_callee_fndecl (tree);
 extern void change_decl_assembler_name (tree, tree);
-extern int type_num_arguments (tree);
+extern int type_num_arguments (const_tree);
 extern bool associative_tree_code (enum tree_code);
 extern bool commutative_tree_code (enum tree_code);
 extern tree upper_bound_in_type (tree, tree);
@@ -4454,7 +4454,7 @@ extern tree force_fit_type_double (tree,
 				   int, bool);

 extern int fit_double_type (unsigned HOST_WIDE_INT, HOST_WIDE_INT,
-			    unsigned HOST_WIDE_INT *, HOST_WIDE_INT *, tree);
+			    unsigned HOST_WIDE_INT *, HOST_WIDE_INT *, const_tree);
 extern int add_double_with_sign (unsigned HOST_WIDE_INT, HOST_WIDE_INT,
 				 unsigned HOST_WIDE_INT, HOST_WIDE_INT,
 				 unsigned HOST_WIDE_INT *, HOST_WIDE_INT *,
@@ -4563,20 +4563,20 @@ extern int alias_sets_must_conflict_p (H
 extern int objects_must_conflict_p (tree, tree);

 /* In tree.c */
-extern int really_constant_p (tree);
-extern int int_fits_type_p (tree, tree);
+extern int really_constant_p (const_tree);
+extern int int_fits_type_p (const_tree, const_tree);
 extern void get_type_static_bounds (tree, mpz_t, mpz_t);
 extern bool variably_modified_type_p (tree, tree);
-extern int tree_log2 (tree);
-extern int tree_floor_log2 (tree);
+extern int tree_log2 (const_tree);
+extern int tree_floor_log2 (const_tree);
 extern int simple_cst_equal (tree, tree);
-extern hashval_t iterative_hash_expr (tree, hashval_t);
-extern int compare_tree_int (tree, unsigned HOST_WIDE_INT);
+extern hashval_t iterative_hash_expr (const_tree, hashval_t);
+extern int compare_tree_int (const_tree, unsigned HOST_WIDE_INT);
 extern int type_list_equal (tree, tree);
-extern int chain_member (tree, tree);
+extern int chain_member (const_tree, const_tree);
 extern tree type_hash_lookup (unsigned int, tree);
 extern void type_hash_add (unsigned int, tree);
-extern int simple_cst_list_equal (tree, tree);
+extern int simple_cst_list_equal (const_tree, const_tree);
 extern void dump_tree_statistics (void);
 extern void expand_function_end (void);
 extern void expand_function_start (tree);
@@ -4586,16 +4586,16 @@ extern void recompute_tree_invariant_for
 extern bool needs_to_live_in_memory (tree);
 extern tree reconstruct_complex_type (tree, tree);

-extern int real_onep (tree);
-extern int real_twop (tree);
-extern int real_minus_onep (tree);
+extern int real_onep (const_tree);
+extern int real_twop (const_tree);
+extern int real_minus_onep (const_tree);
 extern void init_ttree (void);
 extern void build_common_tree_nodes (bool, bool);
 extern void build_common_tree_nodes_2 (int);
 extern void build_common_builtin_nodes (void);
 extern tree build_nonstandard_integer_type (unsigned HOST_WIDE_INT, int);
 extern tree build_range_type (tree, tree, tree);
-extern HOST_WIDE_INT int_cst_value (tree);
+extern HOST_WIDE_INT int_cst_value (const_tree);
 extern tree build_addr (tree, tree);

 extern bool fields_compatible_p (tree, tree);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-07-25 18:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-07-25 18:55 [PATCH INSTALLED]: const typedefs part 4/N Kaveh R. GHAZI

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).