summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2000-03-19 00:37:52 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-03-19 00:37:52 +0000
commit7145ef21d8e9c8a3ebe3198f9222a90e9cd060ec (patch)
treedcf9c5e55679fe645841b71c6dff1bb75d8ece27 /gcc
parent863251c18deeee5fc582117e78574d199bf76c6c (diff)
downloadgcc-7145ef21d8e9c8a3ebe3198f9222a90e9cd060ec.tar.gz
tree.h (tree_index): Remove enumerals for integer types.
* 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. From-SVN: r32624
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog19
-rw-r--r--gcc/tree.c2
-rw-r--r--gcc/tree.h61
3 files changed, 58 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 50cc97f8376..6927fb2ba01 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/tree.c b/gcc/tree.c
index c6045fffffe..2693995675c 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -296,6 +296,7 @@ static char *built_in_filename;
#define BUILT_IN_FILENAME ("<built-in>")
tree global_trees[TI_MAX];
+tree integer_types[itk_none];
/* 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
diff --git a/gcc/tree.h b/gcc/tree.h
index f9503ceca88..9076d5ec39f 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -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]
+
#define NULL_TREE (tree) NULL