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


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

Re: Patch: make `minus_one_node' globally available


 > From: Richard Henderson <rth@redhat.com>
 > 
 > On Sat, Jan 27, 2001 at 08:13:32PM -0500, Kaveh R. Ghazi wrote:
 > >  #define integer_zero_node		global_trees[TI_INTEGER_ZERO]
 > >  #define integer_one_node		global_trees[TI_INTEGER_ONE]
 > > +#define minus_one_node			global_trees[TI_MINUS_ONE]
 > 
 > One of these is not like the other.  I'd prefer this be
 > renamed integer_minus_one_node.
 > 
 > Otherwise ok.
 > r~

Ok.

That name was already used in the CHILL dir (luckily for the same
purpose.)  So I had to remove the init bits there and rename the
existing uses in the cp dir.  Here's the modified patch that I
installed.  Retested on solaris2.7.



2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* stmt.c (estimate_case_costs): Use integer_minus_one_node.

	* tree.c (build_common_tree_nodes_2): Set integer_minus_one_node.

	* tree.h (tree_index): Add new element TI_INTEGER_MINUS_ONE.
	(integer_minus_one_node): Define.

ch:
	* ch-tree.h (integer_minus_one_node): Moved to top level gcc
	directory.

	* decl.c (integer_minus_one_node): Likewise.
	(init_decl_processing): Don't set integer_minus_one_node.

cp:
	* cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
	(minus_one_node): Moved to top level gcc directory.  Renamed
	to integer_minus_one_node.

	* init.c (init_init_processing): Don't set minus_one_node.
	(build_vec_init): Use integer_minus_one_node.

	* rtti.c (get_tinfo_decl_dynamic): Likewise.

	
diff -rup orig/egcs-CVS20010127/gcc/ch/ch-tree.h egcs-CVS20010127/gcc/ch/ch-tree.h
--- orig/egcs-CVS20010127/gcc/ch/ch-tree.h	Tue May  9 17:13:12 2000
+++ egcs-CVS20010127/gcc/ch/ch-tree.h	Sun Jan 28 09:10:20 2001
@@ -906,7 +906,6 @@ extern void write_spec_module           
 
 /* in ch/lang.c */
 extern tree string_index_type_dummy;
-extern tree integer_minus_one_node;
 extern int  flag_old_strings;
 extern void GNU_xref_begin                      PARAMS ((void));
 extern void GNU_xref_end                        PARAMS ((void));
diff -rup orig/egcs-CVS20010127/gcc/ch/decl.c egcs-CVS20010127/gcc/ch/decl.c
--- orig/egcs-CVS20010127/gcc/ch/decl.c	Sat Jan 27 20:41:56 2001
+++ egcs-CVS20010127/gcc/ch/decl.c	Sun Jan 28 09:11:01 2001
@@ -299,9 +299,6 @@ tree default_function_type;
 
 const char **boolean_code_name;
 
-/* A node for the integer constant -1.  */
-tree integer_minus_one_node;
-
 /* Nodes for boolean constants TRUE and FALSE. */
 tree boolean_true_node, boolean_false_node;
 
@@ -3387,9 +3384,6 @@ init_decl_processing ()
 			float_type_node));
   pushdecl (build_decl (TYPE_DECL, ridpointers[(int) RID_DOUBLE],
 			double_type_node));
-
-  integer_minus_one_node = build_int_2 (-1, -1);
-  TREE_TYPE (integer_minus_one_node) = integer_type_node;
 
   build_common_tree_nodes_2 (flag_short_double);
 
diff -rup orig/egcs-CVS20010127/gcc/cp/cp-tree.h egcs-CVS20010127/gcc/cp/cp-tree.h
--- orig/egcs-CVS20010127/gcc/cp/cp-tree.h	Mon Jan 22 16:23:44 2001
+++ egcs-CVS20010127/gcc/cp/cp-tree.h	Sun Jan 28 09:06:28 2001
@@ -635,7 +635,6 @@ enum cp_tree_index
     CPTI_EMPTY_EXCEPT_SPEC,
     CPTI_NULL,
     CPTI_JCLASS,
-    CPTI_MINUS_ONE,
     CPTI_TERMINATE,
     CPTI_ATEXIT,
     CPTI_DSO_HANDLE,
@@ -767,9 +766,6 @@ extern tree cp_global_trees[CPTI_MAX];
 
 /* If non-NULL, a POINTER_TYPE equivalent to (java::lang::Class*). */
 #define jclass_node                     cp_global_trees[CPTI_JCLASS]
-
-/* A node for `(int) -1'.  */
-#define minus_one_node                  cp_global_trees[CPTI_MINUS_ONE]
 
 /* The declaration for `std::terminate'.  */
 #define terminate_node                  cp_global_trees[CPTI_TERMINATE]
diff -rup orig/egcs-CVS20010127/gcc/cp/init.c egcs-CVS20010127/gcc/cp/init.c
--- orig/egcs-CVS20010127/gcc/cp/init.c	Fri Jan 19 16:24:29 2001
+++ egcs-CVS20010127/gcc/cp/init.c	Sun Jan 28 09:09:03 2001
@@ -65,8 +65,6 @@ void init_init_processing ()
 {
   tree fields[1];
 
-  minus_one_node = build_int_2 (-1, -1);
-
   /* Define the structure that holds header information for
      arrays allocated via operator new.  */
   BI_header_type = make_aggr_type (RECORD_TYPE);
@@ -2989,7 +2987,7 @@ build_vec_init (base, init, from_array)
 
       if_stmt = begin_if_stmt ();
       finish_if_stmt_cond (build (NE_EXPR, boolean_type_node,
-				  iterator, minus_one_node),
+				  iterator, integer_minus_one_node),
 			   if_stmt);
 
       /* Otherwise, loop through the elements.  */
@@ -3063,7 +3061,7 @@ build_vec_init (base, init, from_array)
       finish_do_body (do_stmt);
       finish_do_stmt (build (NE_EXPR, boolean_type_node,
 			     build_unary_op (PREDECREMENT_EXPR, iterator, 0),
-			     minus_one_node),
+			     integer_minus_one_node),
 		      do_stmt);
 
       finish_then_clause (if_stmt);
diff -rup orig/egcs-CVS20010127/gcc/cp/rtti.c egcs-CVS20010127/gcc/cp/rtti.c
--- orig/egcs-CVS20010127/gcc/cp/rtti.c	Sat Jan 27 20:42:04 2001
+++ egcs-CVS20010127/gcc/cp/rtti.c	Sun Jan 28 09:09:12 2001
@@ -265,7 +265,7 @@ get_tinfo_decl_dynamic (exp)
       /* The RTTI information is always in the vtable, but it's at
 	 different indices depending on the ABI.  */
       if (new_abi_rtti_p ())
-	index = minus_one_node;
+	index = integer_minus_one_node;
       else if (flag_vtable_thunks)
 	index = integer_one_node;
       else
diff -rup orig/egcs-CVS20010127/gcc/stmt.c egcs-CVS20010127/gcc/stmt.c
--- orig/egcs-CVS20010127/gcc/stmt.c	Fri Jan 26 21:15:40 2001
+++ egcs-CVS20010127/gcc/stmt.c	Sun Jan 28 09:07:35 2001
@@ -5764,7 +5764,7 @@ static int
 estimate_case_costs (node)
      case_node_ptr node;
 {
-  tree min_ascii = build_int_2 (-1, -1);
+  tree min_ascii = integer_minus_one_node;
   tree max_ascii = convert (TREE_TYPE (node->high), build_int_2 (127, 0));
   case_node_ptr n;
   int i;
diff -rup orig/egcs-CVS20010127/gcc/tree.c egcs-CVS20010127/gcc/tree.c
--- orig/egcs-CVS20010127/gcc/tree.c	Sat Jan 27 20:42:18 2001
+++ egcs-CVS20010127/gcc/tree.c	Sun Jan 28 09:07:52 2001
@@ -4786,6 +4786,7 @@ build_common_tree_nodes_2 (short_double)
   /* Define these next since types below may used them.  */
   integer_zero_node = build_int_2 (0, 0);
   integer_one_node = build_int_2 (1, 0);
+  integer_minus_one_node = build_int_2 (-1, -1);
 
   size_zero_node = size_int (0);
   size_one_node = size_int (1);
diff -rup orig/egcs-CVS20010127/gcc/tree.h egcs-CVS20010127/gcc/tree.h
--- orig/egcs-CVS20010127/gcc/tree.h	Wed Jan 10 22:17:43 2001
+++ egcs-CVS20010127/gcc/tree.h	Sun Jan 28 09:08:18 2001
@@ -1715,6 +1715,7 @@ enum tree_index
     
   TI_INTEGER_ZERO,
   TI_INTEGER_ONE,
+  TI_INTEGER_MINUS_ONE,
   TI_NULL_POINTER,
 
   TI_SIZE_ZERO,
@@ -1770,6 +1771,7 @@ extern tree global_trees[TI_MAX];
 
 #define integer_zero_node		global_trees[TI_INTEGER_ZERO]
 #define integer_one_node		global_trees[TI_INTEGER_ONE]
+#define integer_minus_one_node		global_trees[TI_INTEGER_MINUS_ONE]
 #define size_zero_node			global_trees[TI_SIZE_ZERO]
 #define size_one_node			global_trees[TI_SIZE_ONE]
 #define bitsize_zero_node		global_trees[TI_BITSIZE_ZERO]

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