OSDN Git Service

* tree.h (tree_index): Remove enumerals for integer types.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Mar 2000 00:37:52 +0000 (00:37 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Mar 2000 00:37:52 +0000 (00:37 +0000)
(integer_type_kind): New type.
(integer_types): New variable.
(char_type_node): Adjust.
(signed_char_type_node): Likewise.
(unsigned_char_type_node): Likewise.
(short_integer_type_node): Likewise.
(short_unsigned_type_node): Likewise.
(integer_type_node): Likewise.
(unsigned_type_node): Likewise.
(long_integer_type_node): Likewise.
(long_unsigned_type_node): Likewise.
(long_long_integer_type_node): Likewise.
(long_long_unsigned_type_node): Likewise.
* tree.c (integer_types): New variable.
(init_obstacks): Register it as a root.

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

gcc/ChangeLog
gcc/tree.c
gcc/tree.h

index 50cc97f..6927fb2 100644 (file)
@@ -1,3 +1,22 @@
+2000-03-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.h (tree_index): Remove enumerals for integer types.
+       (integer_type_kind): New type.
+       (integer_types): New variable.
+       (char_type_node): Adjust.
+       (signed_char_type_node): Likewise.
+       (unsigned_char_type_node): Likewise.
+       (short_integer_type_node): Likewise.
+       (short_unsigned_type_node): Likewise.
+       (integer_type_node): Likewise.
+       (unsigned_type_node): Likewise.
+       (long_integer_type_node): Likewise.
+       (long_unsigned_type_node): Likewise.
+       (long_long_integer_type_node): Likewise.
+       (long_long_unsigned_type_node): Likewise.
+       * tree.c (integer_types): New variable.
+       (init_obstacks): Register it as a root.
+
 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
 
        * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
index c6045ff..2693995 100644 (file)
@@ -296,6 +296,7 @@ static char *built_in_filename;
 #define BUILT_IN_FILENAME ("<built-in>")
 \f
 tree global_trees[TI_MAX];
+tree integer_types[itk_none];
 \f
 /* Init the principal obstacks.  */
 
@@ -333,6 +334,7 @@ init_obstacks ()
                sizeof type_hash_table / sizeof type_hash_table [0],
                sizeof type_hash_table[0], mark_type_hash);
   ggc_add_tree_root (global_trees, TI_MAX);
+  ggc_add_tree_root (integer_types, itk_none);
 }
 
 void
index f9503ce..9076d5e 100644 (file)
@@ -1515,18 +1515,6 @@ enum tree_index
   TI_UINTDI_TYPE,
   TI_UINTTI_TYPE,
     
-  TI_CHAR_TYPE,
-  TI_SIGNED_CHAR_TYPE,
-  TI_UNSIGNED_CHAR_TYPE,
-  TI_INTEGER_TYPE,
-  TI_UNSIGNED_TYPE,
-  TI_SHORT_INTEGER_TYPE,
-  TI_SHORT_UNSIGNED_TYPE,
-  TI_LONG_INTEGER_TYPE,
-  TI_LONG_UNSIGNED_TYPE,
-  TI_LONG_LONG_INTEGER_TYPE,
-  TI_LONG_LONG_UNSIGNED_TYPE,
-
   TI_INTEGER_ZERO,
   TI_INTEGER_ONE,
   TI_NULL_POINTER,
@@ -1568,18 +1556,6 @@ extern tree global_trees[TI_MAX];
 #define unsigned_intDI_type_node       global_trees[TI_UINTDI_TYPE]
 #define unsigned_intTI_type_node       global_trees[TI_UINTTI_TYPE]
 
-#define char_type_node                 global_trees[TI_CHAR_TYPE]
-#define signed_char_type_node          global_trees[TI_SIGNED_CHAR_TYPE]
-#define unsigned_char_type_node                global_trees[TI_UNSIGNED_CHAR_TYPE]
-#define short_integer_type_node                global_trees[TI_SHORT_INTEGER_TYPE]
-#define short_unsigned_type_node       global_trees[TI_SHORT_UNSIGNED_TYPE]
-#define integer_type_node              global_trees[TI_INTEGER_TYPE]
-#define unsigned_type_node             global_trees[TI_UNSIGNED_TYPE]
-#define long_integer_type_node         global_trees[TI_LONG_INTEGER_TYPE]
-#define long_unsigned_type_node                global_trees[TI_LONG_UNSIGNED_TYPE]
-#define long_long_integer_type_node    global_trees[TI_LONG_LONG_INTEGER_TYPE]
-#define long_long_unsigned_type_node   global_trees[TI_LONG_LONG_UNSIGNED_TYPE]
-
 #define integer_zero_node              global_trees[TI_INTEGER_ZERO]
 #define integer_one_node               global_trees[TI_INTEGER_ONE]
 #define size_zero_node                 global_trees[TI_SIZE_ZERO]
@@ -1602,6 +1578,43 @@ extern tree global_trees[TI_MAX];
 #define const_ptr_type_node            global_trees[TI_CONST_PTR_TYPE]
 #define ptrdiff_type_node              global_trees[TI_PTRDIFF_TYPE]
 #define va_list_type_node              global_trees[TI_VA_LIST_TYPE]
+
+/* An enumeration of the standard C integer types.  These must be
+   ordered so that shorter types appear before longer ones.  */
+enum integer_type_kind 
+{
+  itk_char,
+  itk_signed_char,
+  itk_unsigned_char,
+  itk_short,
+  itk_unsigned_short,
+  itk_int,
+  itk_unsigned_int,
+  itk_long,
+  itk_unsigned_long,
+  itk_long_long,
+  itk_unsigned_long_long,
+  itk_none
+};
+
+typedef enum integer_type_kind integer_type_kind;
+
+/* The standard C integer types.  Use integer_type_kind to index into
+   this array.  */
+extern tree integer_types[itk_none];
+
+#define char_type_node                 integer_types[itk_char]
+#define signed_char_type_node          integer_types[itk_signed_char]
+#define unsigned_char_type_node                integer_types[itk_unsigned_char]
+#define short_integer_type_node                integer_types[itk_short]
+#define short_unsigned_type_node       integer_types[itk_unsigned_short]
+#define integer_type_node              integer_types[itk_int]
+#define unsigned_type_node             integer_types[itk_unsigned_int]
+#define long_integer_type_node         integer_types[itk_long]
+#define long_unsigned_type_node                integer_types[itk_unsigned_long]
+#define long_long_integer_type_node    integer_types[itk_long_long]
+#define long_long_unsigned_type_node   integer_types[itk_unsigned_long_long]
+
 \f
 #define NULL_TREE (tree) NULL